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

Python巧克力分割if/while程序重复输出YES问题排查

重复输出的原因
  • 没有设置程序终止逻辑:当chunks == total触发首次打印YES后,代码会继续运行后续的两个while循环,如果后续循环也匹配到符合条件的切割规则,就会第二次打印YES
  • 双循环同时命中:当目标切块数同时满足按行切割、按列切割的判定条件时,两个while循环都会触发打印操作,直接输出两次YES
  • 额外问题:你的代码中row变量未提前定义就用于计算total,运行时会直接抛出NameError;同时按行/列切割的减量逻辑存在变量混用问题,一行的块数等于列数length,每次切走一行应该减去length而非row,按列切同理,这也会导致判断结果不符合预期。
修复方案

新增一个布尔标记位记录是否满足切割条件,所有判断逻辑走完后统一输出结果,既能避免重复打印,也可以省去无用的useless占位变量,优化后的参考代码如下:

# 提前定义巧克力的行数、列数、目标切块数
row = 2
length = 3
chunks = 3
total = row * length
can_cut = False

# 整块刚好符合要求
if chunks == total:
    can_cut = True
else:
    # 先判断按行切割是否可行
    current = 0
    while current < total:
        current += length
        if current == chunks:
            can_cut = True
            break
    # 按行不可行再判断按列切割
    if not can_cut:
        current = 0
        while current < total:
            current += row
            if current == chunks:
                can_cut = True
                break

# 统一输出结果
print("YES" if can_cut else "NO")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:15:04