天天看點

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