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 }
原文地址:https://www.cnblogs.com/huzhenbo113/p/2950660.html