首页 > 编程语言 > 详细

蓝桥杯2015-省赛-C/C++-A组2题

时间:2020-01-20 15:42:37      阅读:126      评论:0      收藏:0      [点我收藏+]

题目
星系炸弹

在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为 yyyy-mm-dd  即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。

代码

 1 #include<iostream>
 2 using namespace std;
 3 int leap_y[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//366
 4 int com_y[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//365
 5 bool isleap(int y){
 6      if((y%4==0&&y%100!=0)||(y%400==0))
 7      {
 8          return true;
 9      }
10      else
11          return false;
12 }
13 int main(){
14      int year,mon,dat;
15      cin>>year>>mon>>dat;
16      int sum=1000-52;
17      int yday;
18      while(true){
19           if(isleap(year+1))  
20          {  
21              yday= 366;  
22          }  
23          else  
24          {  
25              yday = 365;  
26          }  
27          if(sum < yday)  
28          {  
29              year++;  
30              break;  
31          }  
32          else  
33          {  
34              year++;  
35              sum-=yday;  
36          }  
37      }
38      if(isleap(year)){
39          for(int i=1;i<12;i++){
40              if(sum<=leap_y[i]){
41                  mon=i;
42                  break;
43              }else{
44                  sum-=leap_y[i];
45              }
46          }
47      }else{
48              for(int i=1;i<12;i++){
49              if(sum<=com_y[i]){
50                  mon=i;
51                  break;
52              }else{
53                  sum-=com_y[i];
54              }
55          }
56      }
57      cout<<year<<"-"<<mon<<"-"<<sum<<endl;
58 
59 }

蓝桥杯2015-省赛-C/C++-A组2题

原文:https://www.cnblogs.com/memocean/p/12218215.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!