用c++实现 在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。 有一个贝塔炸弹,2014年11月9日放置,输入定时天数,例如定时为1000天,请你计算它爆炸的准确日期。 请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19 请严格按照格式输出。不能出现其它文字或符号。 提示:输入数据可能有多组
时间: 2024-03-28 07:41:23 浏览: 70
炸弹人_c基础_炸弹人_炸弹人c++_
5星 · 资源好评率100%
以下是使用C++实现的代码,可以实现多组数据输入输出:
```c++
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
// 判断是否为闰年
bool isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
}
return false;
}
// 获取某年某月的天数
int getMonthDays(int year, int month) {
int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (month == 2) {
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
} else {
return days[month-1];
}
}
int main() {
int y, m, d, days;
while (cin >> y >> m >> d >> days) {
while (days > 0) {
int monthDays = getMonthDays(y, m);
if (days >= monthDays - d + 1) {
days -= monthDays - d + 1;
d = 1;
if (++m > 12) {
m = 1;
++y;
}
} else {
d += days;
days = 0;
}
}
printf("%04d-%02d-%02d\n", y, m, d);
}
return 0;
}
```
输入格式为:年 月 日 天数
其中,年、月、日分别为整数,天数为正整数。
输出格式为:yyyy-mm-dd
其中,年为4位数字,月、日为2位数字。
阅读全文