1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 char s[10001]; 7 8 int DigRoot(int n){ 9 if(n<10)return n; 10 int sum = 0; 11 while(n!=0){ 12 sum+=n%10; 13 n/=10; 14 } 15 if(sum<10)return sum; 16 else return DigRoot(sum); 17 } 18 19 int main(){ 20 while(cin>>s&&strcmp(s,"0")!=0){ 21 int sum = 0,i = 0; 22 while(s[i]!=‘\0‘){ 23 sum+=s[i] - ‘0‘; 24 i++; 25 } 26 cout<<DigRoot(sum)<<endl; 27 } 28 return 0; 29 }
原文:http://www.cnblogs.com/lueagle/p/6413451.html