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

Python公元纪年转世纪程序无报错却无法执行,请求排查问题

问题排查与修复方案

代码存在的问题

  • 未导入math模块:使用math.ceil()前没有导入math库,运行时会触发报错。
  • 缩进错误:if year%100==0:下面的century-=1没有缩进,违反Python语法规则。
  • 未定义输入变量:调用solution(year)时,year变量未赋值,程序无法获取要计算的年份。
  • 逻辑错误:原逻辑对整百年份的处理完全错误——1700用math.ceil(1700/100)得到17,再减1会返回16,和测试用例要求的17不符。

修复后的代码

直接通过整数运算实现逻辑,无需依赖math模块,更简洁准确:

def solution(year):
    if year % 100 == 0:
        return year // 100
    else:
        return year // 100 + 1

# 测试用例验证
print(solution(1905))  # 输出20
print(solution(1700))  # 输出17

逻辑说明

  • 整百年份(如1700):直接除以100取整,得到对应世纪。
  • 非整百年份(如1905):除以100取整后加1,得到对应世纪。

内容的提问来源于stack exchange,提问作者陳冠璇

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:22:21