1. 程式人生 > >ZZULIOJ.1109: 數根(函式專題)

ZZULIOJ.1109: 數根(函式專題)

1109: 數根(函式專題)

題目描述

輸入一個正整數,輸出該數的數根。數根可以通過把一個數的各個位上的數字加起來得到。如果得到的數是一位數,那麼這個數就是數根。如果結果是兩位數或者包括更多位的數字,那麼再把這些數字加起來。如此進行下去,直到得到是一位數為止。比如,對於24來說,把2和4相加得到6,由於6是一位數,因此6是24的數根。再比如39,把3和9加起來得到12,由於12不是一位數,因此還得把1和2加起來,最後得到3,這是一個一位數,因此3是39的數根。

要求使用函式,定義函式digitSum(int n)求n的各位數字和,其餘功能在main()函式中實現。

int digitSum(int n)
{
//函式返回n的各位數字之和
}

對於C/C++程式碼的提交,本題要求必須通過定義digitSum函式和main函式實現,否則,提交編譯錯誤,本題需要提交完整程式程式碼。

輸入
輸入一個int範圍內的正整數n

輸出
輸出n的數根

樣例輸入
39

樣例輸出
3

#include<stdio.h>
#include<math.h>
int  digitSum(int n)
{
    int i,t,sum=0,a;
    t=log10(n)+1;
    for(i=1;i<=t;i++)
    {
        a=n%10;
        sum+=a;
        n=
n/10; } return sum; } int main() { int n,t,sum; scanf("%d",&n); t=digitSum(n); if(t>=10) { n=t; t=digitSum(n); } printf("%d",t); return 0; }