👈 如果这篇题解对你有帮助,麻烦戳个赞QwQ
算法
$模拟$
分析
我还是觉得这题没什么好说的
就当是写给萌新看的吧,如果大佬误入了也没关系,可以直接点赞离开
本题我们先开一个monthday数组,用来记录每个月的天数
我们先打表打出来:
int monthday[15]={0,31,0,31,30,31,30,31,31,30,31,30,31};
接下来我们就要得判闰年
判闰年的方法题目中已经说明了:
年份是 4 的整数倍,而且不是 100 的整数倍;
年份是 400 的整数倍。
这两个只要满足之一就好了,所以:
if(year%4==0&&year%100!=0||year%400==0) monthday[2]=29;
else monthday[2]=28;
前面都很简单,接下来有个坑点!!我一开始就死这了
我们需要循环$1$~$month$个月,每次累加该月的天数
但是$month$月还没过完,所以只能循环到$month-1$月
最后输出时在加上该月的天数即可
C++ 代码
#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
int monthday[15]={0,31,0,31,30,31,30,31,31,30,31,30,31};
int year,month,day;
int main(){
while(cin>>year>>month>>day){
if(year%4==0&&year%100!=0||year%400==0) monthday[2]=29;
else monthday[2]=28;
int days=0;
for(int i=1;i<=month-1;i++) days+=monthday[i];
printf("%d\n",days+day);
}
return 0;
}