小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?
c语言解决:
#include<stdio.h>
int main()
{
int months[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int year, month, day;
int km=0;//千米
int ri = 6;//从星期六开始
for (year = 2000; year <= 2020; year++)//在2000到2020年内循环
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//针对闰年多1天的情况
{
months[2] = 29;
}
else
{
months[2] = 28;
}
for (month = 1; month <= 12; month++)
{
for (day = 1; day <= months[month]; day++)
{
km++;
if (ri == 8) {//星期一到星期天的循环
ri = 1;
}
if (ri == 1 || day == 1)//月初和星期一多跑1km
{
km++;
}
ri++;
if (year == 2020 && month == 10 && day == 1) {
printf("%d", km);
return 0;//到了2020年10月1日则跳出循环,退出程序
}
}
}
}
return 0;
}