C语言编程:)写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19。
时间: 2023-06-17 11:05:46 浏览: 173
好的,下面是 C 语言递归函数 `DigitSum` 的实现:
```c
#include <stdio.h>
int DigitSum(int n) {
if (n < 10) {
// 递归结束条件:当 n 是一位数时,返回 n。
return n;
} else {
// 递归调用:将 n 的每一位数字相加并返回。
return n % 10 + DigitSum(n / 10);
}
}
int main() {
int n = 1729;
int sum = DigitSum(n);
printf("Digit sum of %d is %d\n", n, sum);
return 0;
}
```
在 `main` 函数中,我们调用 `DigitSum` 函数,传入参数 `n`,并将返回值存储在变量 `sum` 中。最后输出结果即可。
相关问题
用c语言写一个递归函数,输入一个非负整数,返回组成它的数字之和。
在C语言中,你可以使用递归函数来计算非负整数的所有数字之和。下面是一个简单的示例,该函数名为`sumDigits`:
```c
#include <stdio.h>
// 递归函数,计算并返回整数各位之和
int sumDigits(int num) {
// 基础情况:当num为0时,返回0
if (num == 0)
return 0;
// 否则,返回当前位数值加上去除最后一位后的剩余部分的和
else
return (num % 10) + sumDigits(num / 10);
}
int main() {
int inputNumber;
printf("请输入一个非负整数:");
scanf("%d", &inputNumber);
int result = sumDigits(inputNumber);
printf("数字之和为:%d\n", result);
return 0;
}
```
当你运行这个程序并输入一个非负整数,例如5234,它会递归地将每个数字相加得到结果。
用C语言编写一个递归函数,输入一个非负整数,返回组成它的数字之和
以下是一个用C语言编写的递归函数,它可以输入一个非负整数并返回组成它的数字之和:
```c
#include <stdio.h>
int digitSum(int n) {
// 基本情况:如果n是0,返回0
if (n == 0) {
return 0;
}
// 递归情况:返回n的最后一位数字加上去掉最后一位数字后的数字之和
return (n % 10) + digitSum(n / 10);
}
int main() {
int number;
// 输入一个非负整数
printf("请输入一个非负整数: ");
scanf("%d", &number);
// 检查输入是否为非负整数
if (number < 0) {
printf("错误:请输入一个非负整数。\n");
return 1;
}
// 计算并输出数字之和
int result = digitSum(number);
printf("数字 %d 的各位数字之和是: %d\n", number, result);
return 0;
}
```
这个程序的工作原理如下:
1. `digitSum` 函数是一个递归函数,它接受一个整数 `n` 作为参数。
2. 基本情况:如果 `n` 等于 0,函数返回 0。
3. 递归情况:函数返回 `n` 的最后一位数字 (`n % 10`) 加上 `n` 去掉最后一位数字后的数字之和 (`digitSum(n / 10)`)。
4. 在 `main` 函数中,我们首先提示用户输入一个非负整数。
5. 然后,我们检查输入是否为非负整数。如果不是,程序会输出错误信息并退出。
6. 如果输入有效,我们调用 `digitSum` 函数计算数字之和,并输出结果。
这个程序可以处理任意大的非负整数,只要它们可以用 C 语言中的 int 类型表示。
阅读全文
相关推荐















