原题链接:含2天数
本题为填空题,暴力枚举
直接上代码:
import java.util.*;
public class Main {
public static boolean isYear(int year){//是否闰年
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) return true;
return false;
}
public static void main(String[] args) {
int[] dayNum = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int res = 0;
for(int year = 1900; year <= 9999; year ++){
if(isYear(year)) dayNum[2] = 29;
else dayNum[2] = 28;
String str = String.valueOf(year);
if(str.indexOf('2') >= 0) {
for(int i = 1; i <= 12; i ++) res += dayNum[i];
continue;//含2年份直接加一年天数,跳入下一年
}
for(int month = 1; month <= 12; month ++){
if(month == 2) {
res += dayNum[2];
continue;
}
if(month == 12) {
res += dayNum[12];
continue;
}
for(int day = 1; day <= dayNum[month]; day ++) {
if(String.valueOf(day).indexOf('2') >= 0) res ++;
}
}
}
System.out.println(res);
}
}