50:數根

總時間限制: 1000ms  內存限制: 65536kBspa

描述

數根能夠經過把一個數的各個位上的數字加起來獲得。若是獲得的數是一位數,那麼這個數就是數根。若是結果是兩位數或者包括更多位的數字,那麼再把這些數字加起來。如此進行下去,直到獲得是一位數爲止。

好比,對於24來講,把2和4相加獲得6,因爲6是一位數,所以6是24的數根。再好比39,把3和9加起來獲得12,因爲12不是一位數,所以還得把1和2加起來,最後獲得3,這是一個一位數,所以3是39的數根。翻譯

輸入
一個正整數(小於10 1000)。
輸出
一個數字,即輸入數字的數根。
樣例輸入
24
樣例輸出
6
來源
翻譯自 Greater New York 2000 的試題
 1 #include <stdio.h>
 2 int main()
 3 {
 4     char a[1005];
 5     int i,sum=0,temp;
 6     gets(a);
 7     for(i=0;a[i]!='\0';i++)
 8     {
 9         a[i]=a[i]-'0';
10         sum=sum+a[i];
11     }
12     
13     while(sum>9)
14     {
15         temp=0;
16         while(sum>0)
17         {
18             temp=temp+sum%10;
19             sum=sum/10;
20         }
21         sum=temp;
22     }
23     printf("%d\n",sum);
24     return 0;
25 }
相關文章
相關標籤/搜索