输入一个正整数,求这个数各位上的数字之和,要求递归思路python
时间: 2024-06-01 16:11:15 浏览: 46
def sum_digits(num):
if num < 10:
return num
else:
return num % 10 + sum_digits(num // 10)
num = int(input("请输入一个正整数:"))
print("各位数字之和为:", sum_digits(num))
相关问题
用Python编码,设计一个函数,求正整数各位上的数字之和,要求递归思路实现。
好的,这个问题很适合用递归来解决。以下是求正整数各位上的数字之和的递归函数的 Python 代码:
```python
def digit_sum(n):
# 递归终止条件
if n < 10:
return n
else:
# 递归调用
return digit_sum(n // 10) + n % 10
```
这个函数的思路是,如果输入的正整数 n 小于 10,则直接返回该数字本身;否则,将 n 除以 10,得到一个整数 q,然后将 n 取模 10,得到一个数字 r,将 q 作为输入参数递归调用这个函数,最终将得到 q 的各位数字之和,加上 r,即为原始输入 n 的各位数字之和。
例如,如果输入的数字是 1234,则先将它除以 10,得到 123,取模 10,得到 4,然后将 123 作为参数递归调用这个函数,最终得到 1+2+3=6,再加上 4,结果为 10,即 1234 的各位数字之和。
5.设计一个函数,求正整数各位上的数字之和,要求递归思路实现。
以下是Python代码实现:
```python
def digit_sum(num):
if num < 10:
return num
else:
return num % 10 + digit_sum(num // 10)
# 测试
print(digit_sum(12345)) # 输出:15
```
解释:如果num小于10,直接返回num,否则返回num个位上的数字加上除个位外其他位上的数字之和,即num%10+digit_sum(num//10)。递归终止条件是num小于10。
阅读全文