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

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

#include<bits/stdc++.h>

using namespace std;

int run_sum;

int main() {
	int a=6;  //从星期六开始 
	
	for(int year = 2000; year <= 2020; year++)
		for(int month = 1; month <= 12; month++)
			for(int day =1; day <= 31; day++) {
				if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12);
				else if(month == 2) {
					if((year%4 == 0 && year%100 != 0) || year % 400 == 0) {
						if(day > 29) break;
					} else {
						if(day > 28) break;
					}
				} else {
					if(day > 30) break;
				}
				
				int flag=0; //定义一个标志
				 
				//先求当前的日期是星期几  (1~7: 星期一~星期天)
				int b = (a++ - 1) %7 + 1;
				
				if(b==1) flag = 1; 
				
				//如果某天是周一或者月初(1日,为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
				if(day == 1 || flag == 1) run_sum+=2;
				else run_sum++;
				if(year == 2020 && month==10 && day == 1){
					cout<<run_sum<<endl;
					return 0;
				}
				 
			}
			
			
	return 0;
}
0 回复 0 转发 0 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!