HackerRank奇偶数编程题 部分测试用例逻辑错误修正求助
奇偶数判定挑战代码问题定位与修正
原始代码核心错误点
- 变量覆盖逻辑错误:计算完奇偶性后直接把存储原始输入值的
n替换成了布尔值(True/False),后续所有判断都失去了原始数值做支撑,根本无法完成要求的区间校验 - 条件表达式完全失效:链式写法
n == even > 1 < 6、n == even > 5 < 20在Python中会被解析为连续的等值/大小比较,而even是布尔值(对应数值1),even >1的结果永远为False,整个条件永远不成立;同时代码把偶数的区间判断嵌套在了奇数的判断分支内部,属于永远无法触发的死代码 - 执行流程偏差:当输入18、20这类6~20区间的偶数时,代码会将n赋值为True,由于上述失效的条件判断,会直接走到最终的else分支输出"Not Weird",完全不符合题目要求的"Weird"输出
- 输入格式冗余:
input()携带了自定义提示文本,会导致标准输出混入非要求的打印内容,触发平台判题的输出匹配错误
全测试场景通过的修正代码
n = int(input()) if n % 2 == 1: print("Weird") else: if 2 <= n <= 5: print("Not Weird") elif 6 <= n <= 20: print("Weird") else: print("Not Weird")
适配说明
- 全程保留输入的原始正整数数值,无无效的变量覆盖操作
- 判断逻辑完全匹配官方给定的4条判定规则,覆盖1~100范围内所有易漏的边界值(如1、5、6、20、21、100等),所有测试场景的输出结果完全符合要求
- 移除了
input()的冗余提示文本,保证标准输出仅包含要求的判定结果,完全适配平台判题的输出格式
内容的提问来源于stack exchange,提问作者Lucas Cassimiro Sena Colombo
相关产品推荐
相关产品推荐

