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

Python迭代查找指定步数达到目标值的序列起始值实现问题

代码问题排查

你的原始代码存在3个核心错误:

  • 进入else分支后直接将入参count赋值为0,完全丢失了传入的步数配置
  • 单次计算仅执行了1次*2+5运算,没有按传入的步数执行多步迭代
  • 循环起始先执行了number = number + 1,直接跳过了start=0的合法性校验,导致多步场景结果错误
修改后的实现
def find_start_forward(goal, count):
    """
    从初始值0开始正向迭代搜索,计算序列直到最终值大于等于目标值,返回对应序列起始值
    :param goal: 序列最终需要达到的目标值
    :param count: 达到目标值所需的步数
    :pre-conditions: goal >= 0 and count >= 0
    :return: 符合要求的序列起始值
    """
    if count == 0:
        return goal
    # 从起始值0开始逐个校验
    start = 0
    while True:
        current = start
        # 执行count步运算
        for _ in range(count):
            current = current * 2 + 5
        # 满足条件直接返回
        if current >= goal:
            return start
        start += 1
结果验证
print(find_start_forward(100,1))
# 输出:48,验证:48*2+5=101 >=100,符合要求
print(find_start_forward(7,2))
# 输出:0,验证:0*2+5=5(第一步),5*2+5=15 >=7(第二步),符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:15:01