HDU 1013 Digital Roots

 

题目:求整数的每位数的和

上代码

 

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 char m[100];
 6 int main()
 7 {
 8     int n;
 9     int root;
10     while(~scanf("%s",m)){
11         n=0;
12         int lm=strlen(m);
13         for(int i=0;i<lm;i++) {
14             n = n+m[i]-'0';
15         }
16         if(n == 0)
17             break;
18         root = 0;
19         while(n >= 1){
20             root = root+ (n%10);
21             n/=10;
22         }
23         while(root >= 10){
24             n=root;root=0;
25             while(n >= 1){
26                 root = root+ (n%10);
27                 n/=10;
28             }
29         }
30         printf("%d\n",root);
31     }
32     return 0;
33 }

 

posted @ 2016-01-24 14:42  闪耀子  阅读(122)  评论(0编辑  收藏  举报