ZZULIOJ 1109: 数根(函数专题)
數(shù)根(函數(shù)專題)
題目描述
輸入一個正整數(shù),輸出該數(shù)的數(shù)根。數(shù)根可以通過把一個數(shù)的各個位上的數(shù)字加起來得到。如果得到的數(shù)是一位數(shù),那么這個數(shù)就是數(shù)根。如果結(jié)果是兩位數(shù)或者包括更多位的數(shù)字,那么再把這些數(shù)字加起來。如此進(jìn)行下去,直到得到是一位數(shù)為止。比如,對于24來說,把2和4相加得到6,由于6是一位數(shù),因此6是24的數(shù)根。再比如39,把3和9加起來得到12,由于12不是一位數(shù),因此還得把1和2加起來,最后得到3,這是一個一位數(shù),因此3是39的數(shù)根。
要求使用函數(shù),定義函數(shù)digitSum(int n)求n的各位數(shù)字和,其余功能在main()函數(shù)中實現(xiàn)。
int digitSum(int n)
{
//函數(shù)返回n的各位數(shù)字之和
}
對于C/C++代碼的提交,本題要求必須通過定義digitSum函數(shù)和main函數(shù)實現(xiàn),否則,提交編譯錯誤,本題需要提交完整程序代碼。
輸入
輸入一個int范圍內(nèi)的正整數(shù)n
輸出
輸出n的數(shù)根
樣例輸入 Copy
39
樣例輸出 Copy
3
#include<stdio.h> #include<math.h> int digitSum(int n) {int led,i,x,y,c=0;led=(int)log10(n)+1;for(i=1;i<=led;i++){x=n%10;n/=10;c+=x;}return c; } int main() {int n,y;scanf("%d",&n);y=digitSum(n);while(y>=10){y=digitSum(y);}printf("%d\n",y);return 0; }
總結(jié)
以上是生活随笔為你收集整理的ZZULIOJ 1109: 数根(函数专题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OJ1074: 百钱买百鸡(C语言)
- 下一篇: ZZULIOJ 1067:有问题的里程表