题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到2020 年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?
运行限制
最大运行时间:1s
最大运行内存: 128M
所需变量
int nian = 2000;//代表年,初始为2000
int yue = 1;//代表月,初始为1
int ri = 1;//代表日,初始为1
int xingqi = 6;//代表星期 初始为星期六
int sum = 0;//代表总跑步锻炼公里数
首先我们判断这个月有多少天,首先一月,三月,五月,七月,八月,十月,十二月是有31天,然后四月,六月,九月,十一月是有三十天的,对于闰年,二月有29天,平年有28天。
对于今天是几号我们可以判断,如果是1号或者星期一我们就先加一公里,然后其他的都是一公里,部分代码如下:
for(nian = 2000;nian<=2020;nian++){for(yue = 1;yue<=12;yue++){if((yue == 1)||(yue == 3)||(yue == 5)||(yue == 7)||(yue == 8)||(yue == 10)||(yue == 12)){for(ri = 1;ri<=31;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}if((nian == 2020)&&(yue == 10)&&(ri == 1)){return sum;}}}else if((yue == 4)||(yue == 6)||(yue == 9)||(yue == 11)){for(ri = 1;ri<=30;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}}}else{if(((nian%4 == 0)&&(nian%100!=0))||(nian%400 == 0)){for(ri = 1;ri<=29;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}}}else{for(ri = 1;ri<=28;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}}}}}
}
把上面做完后,我们可以得到最后的sum,然后将其返回回来,对其进行输出,我们就做完这个题目了!
该算法本人认为比较简单。如果有更好的想法,欢迎q我!
代码如下(编译器是dev,语言是C语言):
#include <iostream>
using namespace std;
int solution(){int nian = 2000,yue = 1,ri = 1,xingqi = 6;int sum = 0;for(nian = 2000;nian<=2020;nian++){for(yue = 1;yue<=12;yue++){if((yue == 1)||(yue == 3)||(yue == 5)||(yue == 7)||(yue == 8)||(yue == 10)||(yue == 12)){for(ri = 1;ri<=31;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}if((nian == 2020)&&(yue == 10)&&(ri == 1)){return sum;}}}else if((yue == 4)||(yue == 6)||(yue == 9)||(yue == 11)){for(ri = 1;ri<=30;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}}}else{if(((nian%4 == 0)&&(nian%100!=0))||(nian%400 == 0)){for(ri = 1;ri<=29;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}}}else{for(ri = 1;ri<=28;ri++){if(ri == 1||xingqi == 1){sum++;}sum++;xingqi++;if(xingqi == 8){xingqi =1;}}}}}}
}
int main()
{cout<<solution()<<endl;return 0;
}