ABC344B Delimiter
题目分析¶
题目要求输入若干个整数,每行一个,直到输入 0
为止,0
也算在输入中。
- 输入的最后一个数一定是
0
; - 其它所有数都不是
0
; - 输入个数不确定;
- 要求把这些数倒着输出。
解题思路¶
我们使用一个数组 a
来存储输入的每个数。
题目说最多 100 个整数,因此数组大小可以定义为 a[105]
。
实现步骤¶
- 定义数组:
int a[105];
- 定义计数变量:
int n = 0;
- 使用
while(true)
无限循环读入每个数:- 每次输入一个数,首先执行
n++
,然后存到a[n]
; - 如果这个数是
0
,就停止输入执行break
;
- 每次输入一个数,首先执行
- 使用
for
循环从n
到1
,倒着输出数组a
的内容。
复杂度分析¶
- 时间复杂度:$O(N)$,每个数读一次、输出一次;
- 空间复杂度:$O(N)$,最多存 100 个数;
其中 $N$ 为实际输入的整数个数。
总结¶
- 用数组
a
存每个输入的数; - 最后倒着输出数组
a
中存的数; - 数组长度用变量
n
记录,不需要事先知道输入有多少个数。