蓝桥杯刷题day08——完全日期

1、题目描述

如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。

例如:2021年6月5日的各位数字之和为2+0+2+1+6+5=16,而16是一个完全平方数,它是4的平方。所以2021年6月5日是一个完全日期。

请问,从2001年1月1日到2021年12月31日中,一共有多少个完全日期?

2、解析

计算从2001年1月1日到2021年12月31日之间有多少个"完全日期",即日期中年、月、日的各位数字之和是一个完全平方数的日期。

20010101到20211231最大数位和是30,最小数位和是5,所以可以确定能满足的平方数只有9,16,25。首先将可能的完全平方数(9、16、25)存储在列表ls中。然后,使用datetime模块中的datetime和timedelta类来遍历从2001年1月1日到2021年12月31日的所有日期。在每个日期上,计算年、月、日的各位数字之和,如果和在ls列表中,则计数器c加1。最后输出c的值,即完全日期的数量。

3、python代码

python 复制代码
import datetime

ls=[9,16,25]
c=0
date1=datetime.datetime(2001,1,1)
d=datetime.timedelta(days=1)
while date1.year!=2022:
    if sum(map(int,str(date1.year)))+sum(map(int,str(date1.month)))+sum(map(int,str(date1.day))) in ls:
        c+=1
    date1+=d

print(c)

4、运行结果

相关推荐
中小企业实战军师刘孙亮2 小时前
实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客
职场和发展·小程序·创业创新·学习方法·业界资讯·零售·内容运营
lally.6 小时前
2025蓝桥杯省赛网络安全组wp
web安全·蓝桥杯
zhilanguifang11 小时前
面试记录1-春招补录0427
面试·职场和发展
WebGIS小智11 小时前
WebGIS面试题目整合资料
面试·职场和发展
东方翱翔12 小时前
第十六届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学 A 组
算法·职场和发展·蓝桥杯
Y1nhl13 小时前
力扣hot100_子串_python版本
开发语言·python·算法·leetcode·职场和发展
wuqingshun31415913 小时前
蓝桥杯 16. 密文搜索
c++·算法·职场和发展·蓝桥杯·深度优先
理智的灰太狼14 小时前
题目 3320: 蓝桥杯2025年第十六届省赛真题-产值调整
蓝桥杯
天真小巫1 天前
2025.4.26总结
职场和发展
triticale1 天前
【蓝桥杯】P12165 [蓝桥杯 2025 省 C/Java A] 最短距离
java·蓝桥杯