• 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;

    }

  • 相关阅读:
    spring 面试题
    网络安全基础之笔记三(电子邮件安全/IPSec)
    网络安全基础之笔记二(传输层安全)
    网络安全基础之笔记一(用户认证)
    计算机网络基础之笔记一(体系结构)
    计算机网络基础之笔记三(应用层协议)
    计算机网络基础之笔记二(TCP/IP)
    json递归
    js笔试题(不定期更新)
    centos7的安装和配置
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2462202.html
Copyright © 2020-2023  润新知