蓝桥杯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;
}
相关推荐
小龙报14 小时前
《DevC++支持C++11等与其软件分辨率低的解决办法》
c语言·c++·windows·蓝桥杯·pat考试·学习方法·dvc++
Aldrich_321 天前
蓝桥杯嵌入式赛道—-软件篇(GPIO输出模式配置)
c语言·vscode·stm32·单片机·嵌入式硬件·蓝桥杯
hnjzsyjyj1 天前
洛谷 P12141:[蓝桥杯 2025 省 A] 红黑树
数据结构·蓝桥杯·二叉树
铭哥的编程日记1 天前
深入浅出蓝桥杯:算法基础概念与实战应用(二)基础算法(下)
算法·职场和发展·蓝桥杯
智者知已应修善业1 天前
【c语言蓝桥杯计算卡片题】2023-2-12
c语言·c++·经验分享·笔记·算法·蓝桥杯
_OP_CHEN2 天前
算法基础篇:(八)贪心算法之简单贪心:从直觉到逻辑的实战指南
c++·算法·贪心算法·蓝桥杯·算法竞赛·acm/icpc·简单贪心
遇印记2 天前
蓝桥java蜗牛
java·学习·蓝桥杯
郝开3 天前
Spring Boot 2.7.18(最终 2.x 系列版本)3 - 枚举规范定义:定义基础枚举接口;定义枚举工具类;示例枚举
spring boot·后端·python·枚举·enum
_OP_CHEN4 天前
算法基础篇:(七)基础算法之二分算法 —— 从 “猜数字” 到 “解难题” 的高效思维
c++·算法·蓝桥杯·二分查找·acm·二分答案·二分算法
旭意5 天前
数据结构顺序表
数据结构·c++·蓝桥杯