征战蓝桥 —— 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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43336281/article/details/88741994
今日推荐