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