zoukankan      html  css  js  c++  java
  • HDOJ 1013

    //wa的代码,既然说是整数,应该不用考虑大数,可实际上却要考虑大数

    #include<stdio.h>

    int main()

    {

    int num,temp;

    while(scanf("%d",&num),num)

    {

    temp=num%9;

    printf("%d\n",temp);

    }

    return 0;

    }

    //或者mod9,若是k,则各个数字和为k

    //既然说是整数,应该不用考虑大数,可实际上却要考虑大数

    /*超时代码

    #include<stdio.h>

    int count_digit(int num)

    {

    int sum=0,p=1;

    while(p)

    {

    p=num%10;

    sum+=p;

    p=num/10;

    }

    return sum;

    }

    int main()

    {

    int num,ans;int temp;

    while(scanf("%d",&num),num)

    {

    temp=count_digit(num);

    if(temp>=10)

    temp=count_digit(temp);

    printf("%d\n",temp);

    }

    return 0;

    }*/

    //AC

    #include<stdio.h>

    #include<string.h>

    #define MAX 10000

    char a[MAX];

    void count(int n)

    {

        int tem,sum=0;

        while(n!=0)

        {

            sum+=n%10;

            n/=10;

        }

        if(sum<10)

        {

            printf("%d\n",sum);

        }

        else

        {

            count(sum);//这样便不必用goto

        }

    }

    int main()

    {

        int i,num,len;

        while(scanf("%s",a)&&a[0]!='0')

        {

            num=0;

            len=strlen(a);

            for(i=0;i<len;i++)

            {

                num+=(a[i]-'0');

            }

            count(num);

        }        

        return 0;

    }

    //程序停止,因为str为指针,未指向确定空间,需要分配一个很大的空间

    #include<stdio.h>

    #include<string.h>

    int main()

    {

    char *str;

    int i;int len,sum=0,ans; 

    //不能char str,这是单字符,否则subscript(下标) requires array or pointer type

    while(scanf("%s",str),str[0]!='0')

    //刚开始,多加了取地址符,结果程序停止工作

    {

    //getchar();

    len=strlen(str);

    for(i=0;i<len;i++)

    sum+=str[i]-'0';

    ans=sum%9;

    printf("%d\n",ans);

    }

    return 0;

    }

    /*程序停止工作,提交会TLE

    1.可能递归没有出口

    2.scanf中未加取地址符,或者多加了取地址符

    3.引用了未经初始化的内存*/

    #include<stdio.h>

    #include<string.h>

    #define N 10000

    char str[N];

    int main()

    {

    int i;int len,sum,ans; 

    //不能char str,这是单字符,否则subscript(下标) requires array or pointer type

    while(scanf("%s",str),str[0]!='0')

    //刚开始,多加了取地址符,结果程序停止工作

    {

    //getchar();

    len=strlen(str);

    sum=0;//需放在while内部

    for(i=0;i<len;i++)

    sum+=str[i]-'0';

    ans=sum%9;

    printf("%d\n",ans);

    }

    return 0;

    }

  • 相关阅读:
    我是服务的执政官-服务发现和注册工具consul简介
    跳闸了啊! 服务容灾:熔断器简介
    论获取缓存值的正确姿势
    容器化redis高可用方案
    ASP.NET SessionState 解惑
    Thymeleaf 模板的使用
    记录js的一个图片预览功能代码
    记录一个简单的可以拖动的弹出层
    oracle安装报错[INS-30131]执行安装程序验证所需的初始设置失败(无法访问临时位置)解决方法!
    nginx学习笔记2
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2462202.html
Copyright © 2011-2022 走看看