2018年第九届省赛C/C++A组第2题——星期一
标题:星期一
整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?
(不要告诉我你不知道今天是星期几)
注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字。
代码
#include <iostream>
using namespace std;
bool isyear(int year)
{
if((year%4==0&&year%100!=0)||year%400==0) return true;
else return false;
}
int main()
{
int num=0,ans=0,year=1901,month=1,day=1;
while(1)
{
day++;num++;
if(day==32&&(month==1||month==3||month==5||month==7||month==8||month==10))
{
day=1;
month++;
}
if(day==31&&(month==4||month==6||month==9||month==11))
{
day=1;
month++;
}
if(day==32&&month==12)
{
year++;
day=1;
month=1;
}
if(month==2&&isyear(year)&&day==30)
{
day=1;
month++;
}
if(month==2&&day==29)
{
if(!isyear(year))
{
day=1;
month++;
}
}
if(year==2000&&month==12&&day==25) break;
}
//2000-12-31是星期日,2000-12-25是星期一
while(num>0)
{
cout<<num<<' '<<ans<<endl;
ans++;
num-=7;
}
return 0;
}