2015年第六届蓝桥杯省赛真题之二星系炸弹
来源:互联网 发布:剑灵萝莉捏脸数据 编辑:程序博客网 时间:2024/05/16 06:47
这套真题是我在csdn上找到的,链接在此 2015年第六届蓝桥杯省赛真题
虽然原博客主是c++类别的,我是java的,但是完全不影响,所有题目都已用java实现,随便吐槽一下原博客主,第四题肯定是被你吃了!
2.问题描述:星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
思路:此题,我没有编程,而是进行手算。已知当前日期为2014-11-09,定时为1000天,2015不是闰年,1000-365=635,日期为2015-11-09;2016年是闰年(能被4整除但不能被100整除),635-366=269,日期为2016-11-09;266不满一年,所以接下来按月做减法,11月30天,12月31天,1月31天,2月28天,3月31天,4月30天,5月31天,6月30天,7月31天,269-30-31-31-28-31-30-31-30=27,日期为2017-07-09;27-22=5,日期为2017-07-31;最后日期为2017-08-05。
评解:此题原博客主没有编程,这种直接输出答案的应该是不能通过的吧?
这题难度不大,逻辑不是很复杂,关键在于选择分支有点多,容易搞混,先减去年,年要区分闰年和普通年。然后是月,月要区分大月小月,闰二月和普通二月,然后十二月要进年,同时月份归一。最后是天数,天数进位要判断是大月、小月、闰二月、普通二月。
代码:
public class two星系炸弹 { public static void main(String[] args) { //nian表示年份,yue表示月份,tian表示天数,dingshi表示剩余天数,初始时间是2014年11月9号 int nian=2014, yue=11, tian=9, dingshi=1000; while (dingshi >= 365) {//先增加年份 if ((nian+1)%4 == 0 && (nian+1)%100 != 0) {//是否是闰年 if (dingshi < 366) tian--; dingshi -= 366; nian++; } else { dingshi -= 365; nian++; } } while (dingshi >= 28) {//再增加月份 if (yue==1 || yue==3 || yue==5 || yue==7 || yue==8 || yue==10) {//大月 if (dingshi < 31) break; yue++;dingshi -= 31; }else if(yue==4 || yue==6 || yue==9 || yue==11){//小月 if (dingshi < 30) break; yue++;dingshi -= 30; }else if(yue == 2 && (nian+1)%4 == 0 && (nian+1)%100 != 0){//闰年2月 if (dingshi < 29) break; yue++;dingshi -= 29; }else if(yue == 2){//普通2月 yue++;dingshi -= 28; }else {//12月 if (dingshi < 31) break; nian++;dingshi -= 31;yue=1; } } while (dingshi >0) {//最后增加天数 dingshi--; if (tian+1 > 28 && yue == 2 && !(nian%4 == 0 && nian%100 != 0)) {//普通2月 yue++; tian = 1; }else if(tian+1 > 29 && yue == 2 && (nian%4 == 0 && nian%100 != 0)){//闰年2月 yue++;tian = 1; }else if(tian+1 > 30 && (yue==4 || yue==6 || yue==9 || yue==11)){//小月 yue++;tian = 1; }else if(tian+1 > 31 && (yue==1 || yue==3 || yue==5 || yue==7 || yue==8 || yue==10)){//大月 yue++;tian = 1; }else if(tian+1 > 31 && yue==12){//12月 nian++;yue = 1;tian = 1; }else {//不进月 tian++; } } System.out.println(nian+"-"+yue+"-"+tian); }}
- 2015年第六届蓝桥杯省赛真题之二星系炸弹
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛 星系炸弹(结果填空)
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛-星系炸弹(结果填空)
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛 星系炸弹(结果填空)
- 2015蓝桥杯星系炸弹
- 星系炸弹,蓝桥杯2015年第2题
- 星系炸弹
- 星系炸弹
- 星系炸弹
- 星系炸弹
- 星系炸弹
- 星系炸弹
- 星系炸弹
- 星系炸弹
- 星系炸弹
- 第六届南桥杯A组Java第二题 星系炸弹
- 第六届蓝桥杯A组C/C++ 第二题 星系炸弹
- 山东省第六届蓝桥杯 ///标题:星系炸弹//c/c++组
- Objective-C 协议(protorcol)
- C++:动态内存分配和释放、类型转换、面向对象编程、构造函数
- 23. Merge k Sorted Lists
- 【Matlab Computer Vision System ToolBox】学习笔记-2-3D立体图创建 | 视差图 | 3D点云图
- hdu 1512 左偏树
- 2015年第六届蓝桥杯省赛真题之二星系炸弹
- 使用jsp从后台获取数据后在前端为checkbox打勾选中的方法
- Java反射之getInterfaces()方法
- CodeForces - 742B
- 浅谈web网站架构演变过程
- 支付宝商户收款二维码在哪里?怎么开通商户收款吗
- YalMip
- CCF_CSP 201612-2
- git忽略特殊文件