再帰を使用して、負でない整数の入力を見つけて、それを構成する数値の合計を返します。たとえば、入力 1234、出力 1+2+3+4=10、入力 1729、出力 19。
個々の数字を因数分解して再帰的に計算します。
#include<stdio.h>
#include<stdlib.h>
//首先要把该数分解,知道这个数是几位数,再返回每位数的累加和
DigitSum(int n)
{
if (n / 10== 0)
{
return n;
}
else
{
return n%10 + DigitSum(n / 10);
}
}
int main()
{
printf("请输入一个非负整数:");
int n;
scanf("%d",&n);
printf("%d\n",DigitSum(n));
system("pause");
return 0;
}