如何使用Dart实现:根据输入年份返回其所属世纪
Dart 实现年份转世纪的函数
问题说明
给定规则:
- 第1世纪:1年 ~ 100年(包含两端)
- 第2世纪:101年 ~ 200年(包含两端)
- 以此类推
示例:
- 输入
1905,输出20 - 输入
1700,输出17
输入约束:1 ≤ year ≤ 2005,输入为正整数年份,输出为对应世纪编号。
实现思路
核心逻辑可通过整数除法的特性统一处理两种情况:
- 整百年份(如1700):世纪数 = 年份 ÷ 100
- 非整百年份(如1905):世纪数 = (年份 ÷ 100) + 1
用公式 (year + 99) ~/ 100 可一次性满足两种场景:给年份加99后,非整百年份的除法结果自动进一位,整百年份则保持原商不变。
代码实现
int solution(int year) { return (year + 99) ~/ 100; }
验证案例
测试关键场景:
solution(1)→1(正确,属于第1世纪)solution(100)→1(正确,属于第1世纪)solution(101)→2(正确,属于第2世纪)solution(1905)→20(符合示例)solution(1700)→17(符合示例)
内容的提问来源于stack exchange,提问作者M.Shahzad
相关产品推荐
相关产品推荐

