Description
Input
Output
Sample Input
Sample Output
#include<iostream> #include<cmath> using namespace std; void f(int a) { int s=0; for(int i=0;;i++){ int t=pow((double)10,i); if(a/t==0)break; s+=a%(10*t)/t; } if(s/10!=0)f(s); else cout<<s<<endl; } int main() { int n; while(cin>>n){ if(n==0)break; f(n); } return 0; }
所以要用字符串!!
#include<iostream> #include<string> #include<cmath> using namespace std; void g(int a) { int s=0; for(int i=0;;i++){ int t=pow((double)10,i); if(a/t==0)break; s+=a%(10*t)/t; } if(s/10!=0)g(s); else cout<<s<<endl; } void f(string a) { int s=0,n=a.length(); for(int i=0;i<n;i++){ s+=a[i]-‘0‘; } if(s/10!=0)g(s); else cout<<s<<endl; } int main() { string n; while(cin>>n){ if(n=="0")break; f(n); } //system("pause"); return 0; }
原文:http://www.cnblogs.com/farewell-farewell/p/5186716.html