问题:打鱼还是晒网
思路:用for循环分别求1991年到某年的前一年的天数,以及某年的1月到某月的前一月的天数,用数组存储每月的天数,注意闰年的判断条件和闰年天数的变换,利用五天为一组的周期性,用除余的方式得到结果。
代码:
#include<iostream>
using namespace std;
const int N=13;
int a[N]={31,28,31,30,31,30,31,31,30,31,30,31};
int b[N]={31,29,31,30,31,30,31,31,30,31,30,31};
int main()
{
int y,m,d;
cin>>y>>m>>d;
int count=0;
if(y>1991){
for(int i=1991;i<y;i++){
int k=0;
if(i%4==0&&i%100!=0||i%400==0){
k=366;
count=k+count;
}
else{
k=365;
count=k+count;
}
}
}
if(m>1){
for(int j=0;j<m-1;j++){
if(y%4==0&&y%100!=0||y%400==0)
count=count+b[j];
else
count=count+a[j];
}
}
count=count+d;
int f=count%5;
if(f>0&&f<4)
cout<<"打鱼";
else
cout<<"晒网";
return 0;
}
标签:count,int,天数,31,30,y%,第二天,打卡 From: https://www.cnblogs.com/Hugo-Martin/p/17316414.html