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

如何用增量与While True函数实现下一个闰年识别程序

解答:寻找输入年份之后的下一个闰年

你的代码存在的核心问题

  1. 没有逐年检查后续年份是否为闰年,而是直接固定加1或加4,无法覆盖所有场景(比如输入1899,你的代码会输出1900,但1900并非闰年,正确结果应为1904)。
  2. year+=1写在break语句之后,永远不会执行,循环没有实际的年份增量逻辑。
  3. 闰年判断的条件分支混乱,多个分支最终输出相同结果,没有真正区分闰年的不同判定规则。

正确解法代码

def is_leap(year):
    # 闰年判定逻辑:能被4整除但不能被100整除,或能被400整除
    if year % 4 == 0:
        if year % 100 == 0:
            return year % 400 == 0
        return True
    return False

input_year = int(input("Year: "))
next_year = input_year + 1

# 循环遍历后续年份,直到找到第一个闰年
while True:
    if is_leap(next_year):
        print(f"The next leap year after {input_year} is {next_year}")
        break
    next_year += 1

逻辑说明

  1. 闰年判定函数is_leap:
    • 先判断年份是否能被4整除,不能则直接排除闰年可能;
    • 若能被4整除,再区分是否为整百年:整百年需能被400整除才是闰年(如2000是闰年,1900不是),非整百年直接判定为闰年。
  2. 寻找下一个闰年:
    • 从输入年份的下一年开始检查(题目要求是“该年份之后”的闰年,输入年份本身不算);
    • 逐个年份调用is_leap验证,找到第一个符合条件的年份后输出并终止循环;
    • 若当前年份不是闰年,年份自增1,继续检查下一个。

测试验证

  • 输入2023 → 输出2024(2024是第一个后续闰年)
  • 输入2024 → 输出2028(2024之后的下一个闰年是2028)
  • 输入1900 → 输出1904(1900不是闰年,后续第一个闰年是1904)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:17:38