1. 程式人生 > >求數根

求數根

題目描述

給你一個數,對於一個數,把他所有位上的數字進行加和,得到新的數。 如果這個數字是個位數的話,那麼他就滿足條件,如果不滿足條件 就繼續讓它重複以上操作。直到滿足條件為止。

輸入描述:

給一個整數數字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));
}