天天看点

HDU1013注意,这道题是大数的问题。题目要你求的就是一个很大的数字各个位上的数字相加,直到加到个位数为止,这个个位数就是题目要求的根。下面是代码。

注意,这道题是大数的问题。题目要你求的就是一个很大的数字各个位上的数字相加,直到加到个位数为止,这个个位数就是题目要求的根。下面是代码。

#include <stdio.h>
#define wbx 10000000000
char a[wbx];
#include <string.h>
int main()
{
    while(scanf("%s",a)!=EOF &&a[0]-'0'!=0)
    {
        int i,l,sum,sum1;
        sum=sum1=0;
        l=strlen(a);
        for(i=0;i<l;i++)
            sum+=a[i]-'0';
        if(sum<10)
            printf("%d\n",sum);
        else
            while(sum>=10)
            {
                sum1+=sum%10;
                sum/=10;
                if(sum<10)
                {
                    sum+=sum1;
                    sum1=0;
                }
                if(sum<10)
                    printf("%d\n",sum);
            }
    }
    return 0;
}