以下是一些已知信息,但是或许你需要自己做一些其他的调查。
- 1900年1月1日是星期一。
- 30天的月份有:9月,4月,6月,11月。
- 此外的月份都是31天,当然2月除外。
- 2月在闰年有29天,其他时候有28天。
- 年份可以被4整除的时候是闰年,但是不能被400整除的世纪年(100的整数倍年)除外。
20世纪(1901年1月1日到2000年12月31日)一共有多少个星期日落在了当月的第一天?
public class Problem19
{
public static void main(String[] args)
{
long start = System.currentTimeMillis();
System.out.print("answer: ");
howmany();
long end = System.currentTimeMillis();
System.out.print("time: ");
System.out.println(end - start);
}
static void howmany()
{
int day = 0;
int sum = 1;
int nu = 0;
for (int y = 1900; y <= 2000; y++)
{
for (int m = 1; m <= 12; m++)
{
if (m == 4 || m == 6 || m == 9 || m == 11)
{
day = 30;
}
else if (m == 2)
{
if (y % 4 ==0 && y % 100 !=0 || y % 400 == 0)
{
day = 29;
}
else
{
day = 28;
}
}
else
{
day = 31;
}
sum += day;
if (y >= 1901 && sum % 7 == 0)
{
nu++;
}
}
}
System.out.println(nu);
}
}
answer: 171
time: 0