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

N-Queen Problem求解代码if判断失效,奇数输入无提示输出问题排查

问题根因

  • 最直接的错误是if分支内的打印函数名拼写错误:Python 内置的打印方法是全小写的print(),你代码中写为了首字母大写的Print(),当输入奇数进入该分支时,程序会直接触发NameError报错终止,因此不会输出你预设的提示文本。
  • 你的奇偶判断逻辑存在优先级隐患:位运算符&的优先级低于比较运算符==,你写的n&1==1实际会被解析为n & (1 == 1),虽然当前场景下碰巧结果符合预期,但如果后续判断逻辑调整很容易出现bug,建议修改为(n & 1) == 1更严谨。

修复代码示例

x = 1
cnt = 1
i=1
j=1
location = 1
n = int(input("请输入棋盘维度和皇后数量:"))     
if (n & 1) == 1:
    print("皇后数量必须为偶数")
else:
    while location < n:
        y = int(cnt +(n/2))
        print(" 第",location,"号皇后位于:行",x,",列",y,"\n")
        i+=1
        j+=1
        x+=1
        y =cnt
        cnt+=1
        location+=1
        print(" 第",location,"号皇后位于:行",x,",列",y,"\n")
        x+=1
        # 原代码的location +=16属于逻辑错误,会导致循环提前终止,请根据你的放置逻辑修改为合理值
        location +=1              

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:39:01