题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 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;
}