问题描述
对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从1900年1月1日至9999年12月31日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。
例如,2022年11月13日满足要求,因为2+0+2+2=(1+1)+(1+3).
请提交满足条件的日期的总数量。
public class Main {
public static void main(String[] args) {
int year = 1900;
int month = 1;
int day = 1;
int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int count = 0;
while (true) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
mon[2] = 29;
} else {
mon[2] = 28;
}
if (year / 1000 + year / 100 % 10 + year / 10 % 10 + year % 10 == month % 10 + month / 10 + day % 10 + day / 10) {
count++;
}
day++;
if (day > mon[month]) {
day = 1;
month++;
if (month > 12) {
month = 1;
year++;
}
}
if (year == 9999 && month == 12 && day == 31) {
break;
}
}
System.out.println(count);
}
}