世纪末的星期(第4届蓝桥杯省赛 题1)

一、问题

曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会....     有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,“谣言制造商”又修改为星期日......     1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?     请回答该年份(只写这个4位整数,不要写12月31等多余信息)

二、代码

public class ShiJieMoRi {

	public static void main(String[] args) {
		for (int i = 2099; i < 3000; i += 100) {
			if (f(i)) {
				System.out.println(i);
				break;
			}
		}
	}

	private static boolean f(int i) {
		
		int day = 0;
		for (int j = i; j > 1999; j--) {
			if (isLeapYear(j))day+=366;
			else day+= 365;
		}
		if (day % 7 == 2)
			return true;
		return false;
	}

	private static boolean isLeapYear(int j) {
		if ((j % 400 == 0) || (j % 100 != 0 && j % 4 == 0))
			return true;
		return false;
	}

}

三、截图

    

猜你喜欢

转载自blog.csdn.net/weixin_42565135/article/details/87283300