UVA 11332
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2307
把一个长长的数各个位上的数相加,如果得到的结果大于9,则重复此步骤。只要用字符串接收这个数字,则可以超额完成任务
View Code
1 #include<stdio.h> 2 #include<string.h> 3 char str[50]; 4 void pro(int n) 5 { 6 int i=0; 7 while(n/10) 8 { 9 str[i++]=n%10+48; 10 n/=10; 11 } 12 str[i++]=n+48; 13 str[i]='\0'; 14 } 15 int main() 16 { 17 int i,sum; 18 while(scanf("%s",str),strcmp(str,"0")) 19 { 20 if(strlen(str)==1) 21 { 22 printf("%s\n",str); 23 continue; 24 } 25 do{ 26 sum=0; 27 for(i=0;str[i]!='\0';i++) 28 sum+=str[i]-'0'; 29 pro(sum); 30 }while(sum>9); 31 printf("%d\n",sum); 32 } 33 return 0; 34 }