题解
出生年月日
1 条题解
-
0
解题思路
输入出生年、月、日三个数,用
-连接起来输出。比如输入2008 10 5,输出2008-10-5。注意两个要点:
- 题目没有要求补前导零,所以 10 月就输出
10,5 号就输出5,不需要像2008-10-05那样补零; - 两个数字之间用
-连接。-是一个普通字符,在输出语句里要放进双引号里写成"-"。
做法:先定义三个变量,
y存年份、m存月份、d存日期,用cin依次读入。输出时,先输出y,再输出"-",再输出m,再输出"-",最后输出d,结尾换行。为什么这样输出就对?因为
cout是把所有内容一个接一个地打印出来,我们在中间插入"-",就能把三个数字串成2008-10-5的样子。变量名
y、m、d分别是 year(年)、month(月)、day(日)的缩写,注释里写清楚含义,代码一眼就能看懂。参考代码
#include <iostream> using namespace std; int main() { int y, m, d; // y:出生年份,m:出生月份,d:出生日期 cin >> y >> m >> d; // 依次读入年、月、日 // 按 年-月-日 的格式输出,中间的"-"要用双引号包起来 cout << y << "-" << m << "-" << d << endl; return 0; }复杂度分析
程序只做一次读入、一次输出,操作次数固定,和年、月、日的数值无关。所以时间复杂度是 O(1)。
空间上只用了 3 个 int 变量,空间复杂度是 O(1)。
本题数据范围(年不超过 2023、月 1 到 12、日 1 到 31)都是正常范围的整数,
int完全装得下,不用考虑溢出。 - 题目没有要求补前导零,所以 10 月就输出
- 1