python:使用递归实现将一个数的各位相加

'''
使用递归实现将一个数的各位相加
# 如:123各位相加得 1+ 2 + 3 = 6
346 --> 3 + 4 + 6 = 13
'''

num = input("请输入一个数字: ")
def f():
    num_str = ''
    for i in range(1, len(num)):
        num_str += ' + ' + num[i]
    return num_str


res = num[0] + f()
count = 0
for j in num:
    count += int(j)
res1 = res + ' = ' + str(count)
print(res1)


#  下面是递归的方法:
def func(num):
    if num < 10:
        return num
    else:
        return func(num // 10) + func(num % 10)


num = int(input("请输入任意数字: "))
res = func(num)
print(res)

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个递归函数计算1到100的和: ``` #include <stdio.h> int sum(int n) { if (n == 1) { return 1; } else { return n + sum(n-1); } } int main() { int result = sum(100); printf("1到100的和是:%d", result); return 0; } ``` 这个程序中的 `sum` 函使用递归计算1到n的和。当 `n` 等于1时,函返回1。否则,函返回 `n` 加上 `sum(n-1)`,也就是 `n` 和 `1` 到 `n-1` 的和。在 `main` 函中,我们传递100作为参调用 `sum` 函,并将结果打印出来。 ### 回答2: 这个问题可以通过递归来解决。为了实现递归,我们需要定义一个,然后在函内部调用自身,直到满足结束条件。 代码如下: ```python def recursive_add(n): if n == 1: # 如果n等于1,则直接返回1 return 1 else: return n + recursive_add(n-1) # 递归调用函,并将n减1传入 result = recursive_add(100) # 调用递归函数计算100个的和 print(result) # 输出结果 ``` 这段代码中,`recursive_add`函接收一个`n`,表示需要相加量。当`n`等于1时,函直接返回1,作为递归的结束条件。否则,函通过`n + recursive_add(n-1)`的方式,递归调用自身并将`n-1`传入,最终完成累加操作。 我们调用`recursive_add(100)`来计算100个的和,并将结果打印出来。 运行这段代码后,会输出结果为5050。这是因为1到100相加的结果为5050。 ### 回答3: 要写一个递归相加100个的函,可以按照以下步骤: 1. 定义一个,命名为recursive_sum,接收三个参:numbers列表,start索引和sum_result。numbers列表包含要相加的100个值,start索引表示当前要相加值在列表中的位置,sum_result是当前已累加的结果。 2. 在函内部,首先判断当前的start值是否已经等于100。如果是,说明已经对所有数字相加完毕,直接返回sum_result。 3. 如果当前的start值小于100,那么将当前的数字加到sum_result上,并将start值加1,然后递归调用recursive_sum函自己,参为更新后的numbers列表,增加1的start索引和累加后的sum_result。 4. 递归调用会不断重复步骤2和3,直到start值等于100为止。 5. 最后,将函recursive_sum(numbers, 0, 0)作为入口调用,传入要相加的100个的列表,初始的start索引为0,初始的sum_result为0。函递归相加所有数字并返回最终的结果。 下面是用Python实现这个递归相加的代码: ```python def recursive_sum(numbers, start, sum_result): if start == 100: return sum_result else: sum_result += numbers[start] start += 1 return recursive_sum(numbers, start, sum_result) numbers = [1, 2, 3, 4, 5, ... ] # 假设numbers列表包含100个数字 result = recursive_sum(numbers, 0, 0) print(result) ``` 这样,就可以得到100个数字相加的结果了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值