C/C++-星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
答案:(5分)
code:
//LQ(7)C/C++2-星系炸弹
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int isleapyear(int year){
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return 1;
else return 0;
}
int getmonth(int m,int y){
switch(m){
case 1:return 31;
case 2:return 28 + isleapyear(y);
case 3:return 31;
case 4:return 30;
case 5:return 31;
case 6:return 30;
case 7:return 31;
case 8:return 31;
case 9:return 30;
case 10:return 31;
case 11:return 30;
case 12:return 31;
}
}
int main(){
int year = 2014,month = 11,day = 9;
int cnt = 1000;
while(cnt > 366){
year++;
cnt -= (365+isleapyear(year));
}
while(cnt > 31){
cnt -= getmonth(month,year);
month++;//一开始搞错了顺序(应该先减再加)导致少了一天
if(month == 13){
month = 1;
year++;
}
}
while(cnt){
day++;
cnt--;
if(day == 32){
month = 8;
day = 1;
}
}
cout << year << "-" << month << "-" << day << endl;
return 0;
}
//2017-08-05
也可以用Excel或者Windows上的科学计算器计算日期
本文介绍了一个C/C++程序,用于计算一个设定在特定日期启动并有固定延时的虚拟炸弹的精确爆炸日期。文章提供的代码通过考虑闰年和各个月份天数来准确计算日期。
763

被折叠的 条评论
为什么被折叠?



