输入一个非负整数,利用递归求出各位数字之和
时间: 2024-05-03 12:16:24 浏览: 102
好的,可以使用以下的 Python 代码实现:
```python
def digit_sum(n):
if n < 10:
return n
else:
return n % 10 + digit_sum(n // 10)
```
这个函数首先判断给定的数字 `n` 是否小于 10,如果是,则直接返回该数字;否则,将其个位数和剩余部分的数字(即去掉个位数后的数字)的各位数字之和相加,递归地计算得到最终结果。
相关问题
用java,写一个递归,输入一个非负整数,返回组成它的数字之和
在Java中,你可以编写一个简单的递归函数来解决这个问题。假设我们有一个非负整数n,我们将分解它并返回所有数字的和。下面是一个例子:
```java
public class Main {
public static void main(String[] args) {
int num = 123; // 输入一个非负整数
System.out.println(sumOfDigits(num));
}
public static int sumOfDigits(int n) {
if (n == 0) { // 当n为0时,结束递归
return 0;
} else {
int lastDigit = n % 10; // 取最后一位数字
int remainingSum = sumOfDigits(n / 10); // 递归调用去掉最后一个数字后的和
return lastDigit + remainingSum; // 返回当前位和剩余位的和
}
}
}
```
在这个函数中,每次递归调用都会将n除以10,并取模得到当前的个位数字,然后将剩下的部分继续递归处理。当n变为0时,递归停止,返回0作为基本情况。
用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,它会递归地将每个数字相加得到结果。
阅读全文