1109: 數根(函數專題)
時間限制: 1 Sec 內存限制: 128 MB
提交: 4149 解決: 3263
[提交] [狀態] [討論版] [命題人:admin]
題目描述
輸入一個正整數,輸出該數的數根。數根可以通過把一個數的各個位上的數字加起來得到。如果得到的數是一位數,那么這個數就是數根。如果結果是兩位數或者包括更多位的數字,那么再把這些數字加起來。如此進行下去,直到得到是一位數為止。比如,對于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>
int digitSum(int n)
{int sum,m;sum=n;m=0;while(sum>=10){sum=0;while(n!=0){m=n%10;sum+=m;n/=10;}n=sum;}return sum;
//函數返回n的各位數字之和
}
int main()
{int s,n;scanf("%d",&n);s=digitSum(n);printf("%d\n",s);
}