C语言写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19

****思路分析:在递归的时候进行模10和除10操作即可完成该题目

int DigitSum(int n) {
	if (n < 10) {
		return n;//当n小于10的时候,即取到最大位时直接返回他本身即可
	}
	return n % 10 + DigitSum(n / 10);//首先%10得到各位,在递归时除10,得到前三位,以此类推
}
int main() {
	int ret = DigitSum(123456);
	printf("%d", ret);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/a_hang_szz/article/details/88845034