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