返回题解分享
讨论 / 题解分享/ 帖子详情

跑步锻炼(结果填空) - 题解

#include<iostream>

using namespace std;

int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

bool check(int y,int m,int d)
{
	if(m<=0||m>=13||d<=0) return 0;
	if(m!=2&&d>month[m]) return 0;
	if(m==2)
	{
		int leap=y%100&&y%4==0||y%400==0;
		if(d>28+leap) return 0;
	}
	return 1;
}

int main()
{
	int res=0,week=6;
	for(int i=20000101;i<=20201001;i++)
	{
		int y=i/10000,m=i/100%100,d=i%100;
		if(check(y,m,d))
		{
			if(week==1||d==1) res+=2;
			else res++;
			week++;
		}
		if(week>7) week=1;
	}
	cout<<res;
	return 0;
}
0 回复 0 转发 0 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!