赞
踩
如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。
例如:2021年6月5日的各位数字之和为2+0+2+1+6+5=16,而16是一个完全平方数,它是4的平方。所以2021年6月5日是一个完全日期。
请问,从2001年1月1日到2021年12月31日中,一共有多少个完全日期?
计算从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的值,即完全日期的数量。
- 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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。