蓝桥杯刷题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、运行结果

相关推荐
qq_459234427 天前
【题库】| 商用密码应用安全性评估从业人员考核题库(四十)
职场和发展·密码学·学习方法·考核·商用密码·商用密码应用安全性评估·密评
敲敲了个代码7 天前
[特殊字符] 空数组的迷惑行为:为什么 every 为真,some 为假?
前端·javascript·react.js·面试·职场和发展
诚思报告YH7 天前
视频面试软件市场洞察:2026 - 2032年复合年均增长率(CAGR)为10.3%
面试·职场和发展
重生之后端学习7 天前
74. 搜索二维矩阵
开发语言·数据结构·算法·职场和发展·深度优先
tyb3333337 天前
leetcode:吃苹果和队列
算法·leetcode·职场和发展
Pitiless-invader7 天前
MySQL 相关知识及面试问题汇总
面试·职场和发展
重生之后端学习7 天前
35. 搜索插入位置
java·数据结构·算法·leetcode·职场和发展·深度优先
逆境不可逃7 天前
【从零入门23种设计模式08】结构型之组合模式(含电商业务场景)
线性代数·算法·设计模式·职场和发展·矩阵·组合模式
筱昕~呀7 天前
冲刺蓝桥杯-DFS板块(第二天)
算法·蓝桥杯·深度优先
zheshiyangyang7 天前
前端面试基础知识整理【Day-10】
前端·面试·职场和发展