【第十一届蓝桥杯大赛软件类省赛 B组】试题D 跑步锻炼

试题 D: 跑步锻炼 本题总分:10 分

【问题描述】 小蓝每天都锻炼身体。 正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了 激励自己,小蓝要跑 2
千米。如果同时是周一或月初,小蓝也是跑 2 千米。 小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年
10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

代码如下:

#include 

using namespace std;

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

int main() {
  int y = 2000, m = 1, d = 1, w = 6, ans = 0;
  while(true) {
    ans += (d == 1 || w == 1) + 1;
    if (y == 2020 && m == 10 && d == 1) {
			break;
		}
    w = (w + 1) % 7;
    d = d + 1;
    if((y % 400 == 0 || y % 4 == 0 && y % 100 != 0) && m == 2) {
    	if (d > month[m] + 1) {
				d = 1;
				m += 1;
			}
    } else if (d > month[m]) {
			d = 1;
      m += 1;
		}
    if(m == 13) {
      y += 1;
      m = 1;
    }
  }
  printf("%d\n", ans);
	return 0;
}

答案:8879

你可能感兴趣的:(蓝桥杯)