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

如何编写按指定公式生成序列的Python递归函数?

递归打印序列代码修复

现存问题

  • 缺少递归终止的基线条件,会导致无限递归报错
  • 递归调用时count参数逻辑错误,应该递减而非递增
  • 未打印初始start值,和预期输出不符

修复后代码

直接打印版本

def print_sequence_rec(start, count):
    # 基线条件:剩余打印次数耗尽时终止递归
    if count < 0:
        return
    print(start, end=" ")
    next_val = (start * 2) + 5
    print_sequence_rec(next_val, count - 1)

调用print_sequence_rec(2, 5)即可输出2 9 23 51 107 219 ,如果需要去掉末尾多余空格,可使用返回字符串拼接的版本:

无末尾空格版本

def print_sequence_rec(start, count):
    if count < 0:
        return ""
    current = str(start)
    next_val = (start * 2) + 5
    suffix = print_sequence_rec(next_val, count - 1)
    return current + (f" {suffix}" if suffix else "")

# 调用示例
print(print_sequence_rec(2, 5))

输出完全匹配预期:2 9 23 51 107 219

逻辑说明

基线条件设为count < 0时终止,count为传入的总个数时,从count递减到0刚好会打印count+1个值,和示例的参数输出对应;每次递归先处理当前值,再计算下一个序列值传入下一层递归,剩余打印次数同步减1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:24:03