蓝桥杯13届国B 完全日期

题目描述**。**

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

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

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

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

cpp 复制代码
#include<iostream>
using namespace std;

int day[13]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int ans;

int check(int a, int b, int c)
{
	int temp = a%10 + a/10%10 + a/100%10 + a/1000 + b%10 + b/10 + c%10 + c/10;
	//日期2001.1.1数字和最小是5,最大日期2019.9.29数字和是32 
	if(temp==9 || temp==16 || temp==25)
	{
		return 1;
	}
	return 0;
}

int main()
{
	for(int i=2001; i<=2021; ++i)
	{
		day[2]=28;  //重置2月天数
		for(int j=1; j<=12; ++j)
		{
			if(i%4==0&&i%100!=0 || i%400==0) day[2]=29;
			
			for(int k=1; k<=day[j]; ++k)
			{
				if(check(i, j, k)) ans++;
				
				if(i==2021 && j==12 && k==31)
				{
					cout<<ans;
					return 0;
				}
			}
		}
	}
	
	return 0;
}
相关推荐
十二3 天前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
青少儿编程课堂4 天前
蓝桥杯青少组省考(11/9报名截止·11/22开考)+电子学会图形化考级+信息素养大赛:校园极速跑酷闯关解析
蓝桥杯·scratch·图形化编程·信息素养大赛·电子学会考级
UIU11410 天前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
爱聊灵光的维C11 天前
C语言初阶:关于函数设计的详细讲解和注意事项
c语言·开发语言·青少年编程·蓝桥杯·学习方法
GG.WinGel14 天前
三元组中心问题
java·数据结构·算法·青少年编程·蓝桥杯
GG.WinGel15 天前
质数数目(蓝桥杯练习题)
java·数据结构·算法·青少年编程·蓝桥杯
Tsuki_tl16 天前
【优选算法 — 双指针】经典例题题解+算法总结
算法·蓝桥杯·力扣·刷题·双指针·1024程序员节·优选算法
十二18 天前
【洛谷题解】P1115 最大子段和(前缀和 + 维护最小前缀)
数据结构·c++·算法·蓝桥杯
青少儿编程课堂20 天前
2026蓝桥杯青少组:校园飞鸟穿越赛解析
蓝桥杯·scratch·少儿编程·图形化编程·蓝桥杯青少组
aqiu11111122 天前
蓝桥杯真题复盘:Fibonacci 数列与黄金分割(C++ 算法详解)
c++·算法·蓝桥杯