0
点赞
收藏
分享

微信扫一扫

蓝桥杯 跑步锻炼

elvinyang 2022-01-24 阅读 63
蓝桥杯c++

题目描述:
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?

#include <iostream>
using namespace std;

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

bool is_leap(int year)
{
	return year % 400 == 0 || year % 4 == 0 && year % 100 != 0;
}

int get_day(int year, int month)
{
	if(month == 2)
		return 28 + is_leap(year);
	return days[month];
}

int main()
{
	
	int sum = 0, ans = 0;
	for (int i = 2000; i <= 2019; i ++)
		for (int j = 1; j <= 12; j ++)
			for (int k = 1; k <= get_day(i, j); k ++)
			{
				int weekday = (sum-2) % 7;
				if(k == 1 || weekday == 0)
					ans += 2;
				else ans ++;
				sum ++;
			}

	for (int j = 1; j <= 9; j ++)
		for (int k = 1; k <= get_day(2020, j); k ++) {
			int weekday = (sum-2) % 7;
			if(k == 1 || weekday == 0)
				ans += 2;
			else ans ++;
			sum ++;
		}

	cout << ans + 2 << endl;
	return 0;
}


 

举报

相关推荐

0 条评论