# Problem J: Summing Sum 題目連結 [UVa 11332](https://onlinejudge.org/external/113/11332.pdf) ## 中文簡述 對於所有正整數 n ,我們定義一函數 f(n) 為 n 的每一個十進位數字的總和,若再把 f(n) 代入函數中可得最到 n,f(n),f(f(n)),f(f(f(n)))… 最後得到僅有一位數字的值,並定義該值為 g(n) 。 例如,當 n=1234567892 ,則: f(n)=1+2+3+4+5+6+7+8+9+2=47 f(f(n))=4+7=11 f(f(f(n)))=1+1=2 所以, g(1234567892)=2 。 ## solution: ``` #include<iostream> using namespace std; int ans(int n) { while(n>10) { int sum=0; while(n!=0) { sum+=n%10; n/=10; } n=sum; } return n; } int main() { string str; while(cin>>str and str!="0") { int n=0,i; for(i=0;i<str.length();i++) { n+=(int)str[i]-'0'; } // cout<<n<<endl; cout<<ans(n)<<endl; } } ``` ###### tags: `UVA` 回目錄 [學習筆記](/gIBZqAbWTCis7uOPp149gA)