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

编写入门程序统计年/月/日各位数字之和等于7的日期总数

实现思路

你的初始思路完全适合初学者场景,不用纠结是不是“最优”。一年最多366天,哪怕全量遍历计算量也可以忽略不计,反而逻辑简单好写,不容易出现边界错误,比硬凑数字排列组合的逻辑靠谱太多。

具体实现可以按下面的步骤走:

  • 先确定要统计的年份,优先处理2月天数的边界:可以直接预定义各月的天数列表,平年用[31,28,31,30,31,30,31,31,30,31,30,31],闰年把第二个元素改成29即可
  • 初始化计数器(或者存符合条件日期的空列表),初始值为0
  • 遍历1~12月的所有月份:
    • 遍历对应月份的1号到当月最后一天的所有日期
    • 把年、月、日的所有数字拆分求和,注意如果是示例里的两位年规则,取年份后两位计算即可
    • 如果求和结果等于7,计数器加1(或把当前日期存入结果列表)
  • 遍历结束后直接输出计数器值或者结果列表即可

拆分数字求和可以用非常简单的写法,以Python为例,一行就能搞定:

# 四位年计算规则
total = sum(int(c) for c in str(year) + str(month) + str(day))
# 两位年计算规则(匹配你给的示例)
total = sum(int(c) for c in str(year % 100) + str(month) + str(day))

如果想验证逻辑,可以拿你给的1/3/21测试,按两位年规则计算:str(21)+str(1)+str(3)得到字符串"2113",各位求和就是2+1+1+3=7,和示例结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:36:07