求數根
阿新 • • 發佈:2018-11-06
題目描述
給你一個數,對於一個數,把他所有位上的數字進行加和,得到新的數。 如果這個數字是個位數的話,那麼他就滿足條件,如果不滿足條件 就繼續讓它重複以上操作。直到滿足條件為止。輸入描述:
給一個整數數字n(1<=n<=1e9)。
輸出描述:
輸出由n經過操作滿足條件的數
示例1
輸入
12
輸出
3
說明
12 -> 1 + 2 = 3示例2
輸入
38
輸出
2
說明
38 -> 3 + 8 = 11 -> 1 + 1 = 2
程式碼講解
#include <stdio.h> int genshu(int a)//每一位相加的結果 { int t=0; while(a>0) { t=t+a%10; a=a/10; } return t; } int xunhuan(int a)//判斷答案是否是個位數,是則返回,不是則迴圈 { int t; t=a; while(t>=10)//判斷是否需要迴圈 { t=genshu(t); } return t; } int main()//主函式 { int n; scanf("%d",&n); printf("%d",xunhuan(n)); }