calc the sum

要放那么大的数字要用字符串,用一个递归就行。

#include<stdio.h>
#include<string.h> 
int main()
{
    int calc(int n);
    int a;
    //printf("dsfsf");
    scanf("%d", &a);
    char num[1000002];
    //printf("%d",a);
    int out;
    int i;
    int count;
    while(a--)
    {
        count=0;
        //memset(num,'\0',sizeof(num));
        scanf("%s",num);
        i=0;
        while(num[i]!='\0')
        {
            count+=num[i]-'0';
            i++;    
        }
        //printf("   %d",count);
        out=calc(count);
        printf("%d\n",out);
        }    
        return 0;
}
int calc(int n)
{
    
    if (n< 10)
        return n;
    else
    {
        int  x = 0;
        int k = n;
        while(k)
        {
            x += k % 10;
            k = k / 10;
        }
        return calc(x);
    }
}

猜你喜欢

转载自www.cnblogs.com/yuhaowang/p/10247164.html
sum