题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
小蓝跑步已经坚持了很长时间,从 2000年 1 月 1 日周六(含)到 2020 年 10 月 1 日周(含)。请问这段时间小蓝总共跑步多少千米?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
代码
public class Main {
public static void main(String[] args) {
int []months={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年每月天数
int num=6,sum=0;//num为一月一号是周六,sum为公里数
for(int year=2000;year<=2020;year++){
//如果是闰年,第二个月29天
if((year%400==0)||(year%4==0&&(year%100!=0))){
months[2]=29;
}else{ //else不写会出错,不知道为什么这样
months[2]=28;
}
for(int i=1;i<=12;i++){//几月
for(int j=1;j<=months[i];j++){//该月有几天
sum++;//每天一千米
if(num==8){
num=1;//num自增到8时回归1,即星期天过后是星期一
}
//周一或月初或周一与月初多跑一千米
if(num==1||j==1){
sum++;
}
num++;//进入第二天
到2020.10.1结束循环
if(year==2020&&i==10&&j==1){
System.out.println(sum);
}
}
}
}
}
}