题目
星系炸弹
在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 }
原文:https://www.cnblogs.com/memocean/p/12218215.html