题目描述:
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
思路:模拟,即一天一天计算,如果当天是1号或者周一,跑步千米数+2,否则只加1
#include<iostream>
using namespace std;
int nums = 0;
void Running_nums(int year, int month, int day, int week)
{
if (day == 1 || week == 1)nums += 2;
else nums++;
}
int main()
{
int year = 2000, month = 1, day = 1, week = 6, flag = 0;
int month_day[2][12] = { {31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31 } };
while (year!=2020|| month != 10 || day != 2)
{
Running_nums(year, month, day, week % 7);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)flag = 1;//判断是否是闰年
else flag = 0;
if (day == month_day[flag][month - 1])//天满
{
day = 1;
if (month == 12)//月满
{
month = 1;
year++;
}
else month++;//月未满
}
else day++; //天未满
week++;
}
cout << nums << endl;
return 0;
}
答案:8879