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




















