蓝桥杯 特殊日期 datetime

题目https://www.lanqiao.cn/problems/2408/learning/?page=1&first_category_id=1&sort=students_count&second_category_id=3&tags=2023

 思路:

如果循环条件写成:

start <= end

当日期等于9999 12 31,任然可以进入循环,但是就超出了datetime可以表示的年数了。

import datetime

start = datetime.datetime(1900, 1, 1)
end = datetime.datetime(9999, 12, 31)
cnt = 0
start += datetime.timedelta(days=1)
while start < end:
    year = start.year
    y4 = year % 10
    y3 = year // 10 % 10
    y2 = year // 100 % 10
    y1 = year // 1000
    y_sum = y1 + y2 + y3 + y4
    month = start.month
    m2 = month % 10
    m1 = month // 10
    m_sum = m1 + m2
    day = start.day
    d2 = day % 10
    d1 = day // 10
    d_sum = d1 + d2
    if y_sum == m_sum + d_sum:
        cnt += 1
    start += datetime.timedelta(days=1)

print(cnt)

思路

一次性做对

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值