艺术与篮球(蓝桥)
- ==问题描述==
- ==格式输入==
- ==格式输出==
- ==评测用例规模与约定==
- ==解析==
- ==参考程序==
- 难度等级
问题描述
格式输入
无
格式输出
一个整数
评测用例规模与约定
无
解析
模拟就好从20000101-20240413每一天计算笔画数是否大于50然后天数++;
记得判断平闰年别写错还有数字的问题,这里月份和天数的十位上可能有0,重复取模除就好。
参考程序
#include<bits/stdc++.h>
using namespace std;
const int cnt[10]={13,1,2,3,5,4,4,2,2,2};
bool leap(int year)
{
return year%400==0||(year%4==0&&year%100!=0);
}
int maxdays(int year,int month)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)return 31;
if(month==4||month==6||month==9||month==11)return 30;
return leap(year)?29:28;
}
int main()
{
int ans=0;
int year=2000,month=1,day=1;
while(1)
{
if(year==2024&&month==4&&day==14)break;
int tot=0;
tot+=cnt[year/1000]+cnt[year/100%10]+cnt[year/10%10]+cnt[year%10];
tot+=cnt[month/10]+cnt[month%10];
tot+=cnt[day/10]+cnt[day%10];
if(tot>50)ans++;
if(day<maxdays(year,month))day++;
else
{
day=1;
if(month<12)month++;
else
{
year++;
month=1;
}
}
}
cout<<ans;
return 0;
}
难度等级
⭐️⭐️可以加四分之一星(1~10星)
以个人刷题整理为目的,如若侵权,请联系删除~