You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python求和函数错误排查及递归实现方法咨询

问题修复与递归实现方案

原代码问题分析

原代码中find_sum函数的return sum语句写在了while循环内部,导致循环仅执行一次就直接返回当前输入的n值,无法完成0到n的完整累加。

修复后的迭代版本

将return sum移到while循环外部,让循环完整执行所有累加步骤;同时避免使用Python内置函数名sum作为变量名,防止覆盖内置功能:

#This program defines a function named find_sum to calculate the sum of numbers
#from 0 to n, where n is number entered by a user

#input = 3 so 0 + 1 + 2 + 3 = 6(result)
#input = 10 result = 55

n = int(input("Enter a number: "))

def main(): 
    result = find_sum(n)
    print("The result is", result)
        
def find_sum(n):
    sum_total = 0
    while n >= 0:
        sum_total += n
        n -= 1
    return sum_total  # 移至循环外部,确保累加完成后返回结果
        
main()

递归实现版本

递归实现的核心逻辑分为两步:

  • 基线条件:当n ≤ 0时,返回0(0到0的和为0)
  • 递归条件:返回n + find_sum(n-1),即当前数n加上0到n-1的和

代码实现:

n = int(input("Enter a number: "))

def main(): 
    result = find_sum(n)
    print("The result is", result)
        
def find_sum(n):
    if n <= 0:
        return 0
    return n + find_sum(n - 1)
        
main()

测试输入3时,递归执行流程为:find_sum(3) = 3 + find_sum(2) → find_sum(2)=2+find_sum(1) → find_sum(1)=1+find_sum(0) → find_sum(0)=0,最终计算得3+2+1+0=6,符合预期。

内容的提问来源于stack exchange,提问作者toothpaste_123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:42:05