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

翻转数字对程序异常求助:奇数输入时缺失末尾数字

解决奇数输入时缺失最后一个数字的问题

你的代码在处理偶数输入时正常,但遇到奇数输入会丢失最后一个数,核心原因是循环终止条件t >= num会在t等于奇数输入值时直接跳出循环,没机会打印这个数。这里提供两种修复方案:

方案一:修改循环内的判断逻辑

调整循环里的打印逻辑,当r超过输入的数字时,单独打印t;否则按原逻辑打印一对数字:

num = int(input("Please type in a number: "))
r = 2
t = 1

while True:
    if t > num:
        break
    if r > num:
        print(t)
    else:
        print(r)
        print(t)
    r += 2
    t += 2

方案二:用for循环简化逻辑

利用range的步长特性,直接遍历每一组起始的奇数,先打印对应的偶数(如果存在),再打印奇数:

num = int(input("Please type in a number: "))
for i in range(1, num + 1, 2):
    if i + 1 <= num:
        print(i + 1)
    print(i)

两种方案都能适配奇偶输入:输入5时会输出2、1、4、3、5;输入6时输出2、1、4、3、6、5,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:42:13