直接套用pdf文档中的日期计算模板,然后将日期转化为字符串,遍历字符串的各个元素,统计笔画数即可。
#include <bits/stdc++.h>
using namespace std;
int m1[]={0,1,3,5,7,8,10,12};
int m2[]={0,4,6,9,11};
int main()
{
int num=0;
int year=2000,month=1,day=1;
int year2=2024,month2=4,day2=13;
while(1)
{
for(int i=1;i<=7;i++)
{
if(month==m1[i] && day==32)
{
month++;
day=1;
break;
}
}
for(int i=1;i<=4;i++)
{
if(month==m2[i] && day==31)
{
month++;
day=1;
break;
}
}
if(month==2)
{
if((year%4==0 && year%100!=0) || year%400==0){
if(day==30){
month++;
day=1;
}
}else{
if(day==29){
month++;
day=1;
}
}
}
if(month==13){
year++;
month=1;
}
string str;
string s_year=to_string(year);
string s_month= month<10 ? "0"+to_string(month) : to_string(month);
string s_day= day<10 ? "0"+to_string(day) : to_string(day);
str = s_year + s_month + s_day;
int sum=0;
for(int i=0;i<str.size();i++)
{
if(str[i]=='1') sum +=1;
else if(str[i]=='2'||str[i]=='7'||str[i]=='8'||str[i]=='9') sum +=2;
else if(str[i]=='3') sum +=3;
else if(str[i]=='4') sum +=5;
else if(str[i]=='5'||str[i]=='6') sum +=4;
else if(str[i]=='0') sum += 13;
}
if(sum >50) num++;
if(year==year2&&month==month2&&day==day2){
break;
}
day++;
}
cout<<num<<endl;
return 0;
}
0 回复
0 转发
0 喜欢
1 阅读



