计算一个数的每位之和(递归实现)

计算一个数的每位之和(递归实现)_第1张图片

答案:

#include
int DigitSum(int n)    //创建题目要求的求每位之和的函数
{
	if (n / 10 == 0)    //如果是个位数
	{
		return n;     //返回该值并且停止递归
	}
	else   //如果是两位数及以上
	{
		return  n % 10 + DigitSum(n / 10);    //继续/10再%10
	}
}
int main()
{
	int n = 0, sum = 0;
again:
	printf("请输入一个非负整数:\n");     
	scanf("%d", &n);
	if (n < 0)     //如果输入的是负数
	{
		printf("请正确输入数据!\n");
		goto again;    //重新输入
	}
	sum = DigitSum(n);    //求每位之和
	printf("%d\n", sum);
	return 0;
}

计算一个数的每位之和(递归实现)_第2张图片

你可能感兴趣的:(c语言)