import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
/*
思路:暴力搜索
先将所有年份看作是(平年),计算一个平年的月日中出现多少个2,
然后计算所有平年的年一共 出现多少个2,此时所有平年的年月日出现2
的个数=所有平年的年出现2的个数+一个平年的月日出现2的个数*平年的个数
然后加上闰年,即计算闰年的月日的那个多出的2月29日出现了两个2,
那么所有闰年的月日出现2的个数=所有闰年的个数*2
这里注意判断闰年的条件:
闰年:
(1)四年一闰百年不闰:即如果year能够被4整除,但是不能被100整除,则year是闰年。
(2)每四百年再一闰:如果year能够被400整除,则year是闰年。
比如,1900年不是闰年,因为1900不能被400整除((2)的条件包含了(1)),但是2000年是闰年。
需要排除特殊条件。
可以参考:
https://blog.youkuaiyun.com/m0_46630468/article/details/119254300
所以总的2的个数=所有平年的年出现2的个数+一个平年的月日出现2的个数*平年的个数+所有闰年的个数*2
由于每个月的天数不一样,可以预先用一个数组保存一个平年12个月的各个月的天数,计算月日遍历该数组即可。
*/
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
scan.close();
}
}
蓝桥杯真题【含 2 天数】
最新推荐文章于 2023-03-29 14:10:35 发布