第四届蓝桥杯JAVA本科B(世纪末的星期)
2013-05-16 11:47
281 查看
运气有点好,小题对没两道,还好大题4道会三道。幸福有点太突然的拿到一等奖。
比赛的时候不会做,好囧~~(把闰年的计算方法给忘记了,加上对日期的API真心不熟悉)
package com.zcb; import java.util.Calendar; import java.util.GregorianCalendar; /** * * @author zhengchubin * */ /* 世纪末的星期 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,“谣言制造商”又修改为星期日...... 1999年的12月31日是星期五, 请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) */ public class EndDay { public static void main(String[] args) { //第一种方法 int day = -1; for(int i=2099;i<5000;){ Calendar calendar = new GregorianCalendar(i,11,31); day = calendar.get(Calendar.DAY_OF_WEEK); if(day==1) System.out.println(i); i=i+100; } //第二种方法 int days = 5;// 1999年的最后一天为周5,把下一年加上5天正好是周日 int i=2000; // 所以在2000年的天数上加5天,正好可被7整除的年的最后一天是周日 for(;;){ if(i%4==0&&i%100!=0||i%400==0){ // 平年365天 闰年366天 days=days%7+366; // 把每一年对7取余的天数+下一年的天数 }else{ days=days%7+365; } if(days%7==0&&(i+"").endsWith("99")){ System.out.println(i); break; } i++; } } }
相关文章推荐
- 第四届蓝桥杯 省赛 JavaB组 世纪末的星期
- 世纪末的星期——第四届蓝桥杯选拔赛java B组
- 第四届蓝桥杯省赛JAVAB组——世纪末的星期
- [JAVA][2013蓝桥杯预赛 JAVA本科B组][世纪末的星期]
- 2013蓝桥杯预赛java 世纪末的星期
- 算法笔记_108:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科A组)试题解答
- 2013年第四届蓝桥杯试题(Java本科B组)
- java 蓝桥杯 世纪末的星期
- 第四届蓝桥杯A组--世纪末的星期
- 第四届蓝桥杯 世纪末的星期
- 算法笔记_109:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科B组部分习题)试题解答
- 2013年第四届蓝桥杯试题(C/C++本科B组)
- 2014第五届蓝桥杯JAVA本科B组试题第三题猜字母
- 2013年第四届蓝桥杯全国软件大赛本科A组c++预赛 题目及参考答案
- 第五届蓝桥杯软件类省赛真题 Java本科A 猜年龄
- 蓝桥杯学习笔记——世纪末的星期
- 第四届蓝桥杯javaB组 幸运数
- 2013第四届蓝桥杯 C/C++本科A组 真题答案解析【交流帖】
- 蓝桥杯 世纪末的星期
- [JAVA][2013蓝桥杯预赛 JAVA本科B组][有理数类]