跳转至

ABC344B Delimiter

题目分析

题目要求输入若干个整数,每行一个,直到输入 0 为止,0 也算在输入中。

  • 输入的最后一个数一定是 0
  • 其它所有数都不是 0
  • 输入个数不确定;
  • 要求把这些数倒着输出

解题思路

我们使用一个数组 a 来存储输入的每个数。

题目说最多 100 个整数,因此数组大小可以定义为 a[105]

实现步骤

  • 定义数组:int a[105];
  • 定义计数变量:int n = 0;
  • 使用 while(true) 无限循环读入每个数:
    • 每次输入一个数,首先执行 n++,然后存到 a[n]
    • 如果这个数是 0,就停止输入执行 break
  • 使用 for 循环从 n1,倒着输出数组 a 的内容。

复杂度分析

  • 时间复杂度:$O(N)$,每个数读一次、输出一次;
  • 空间复杂度:$O(N)$,最多存 100 个数;

其中 $N$ 为实际输入的整数个数。


总结

  • 用数组 a 存每个输入的数;
  • 最后倒着输出数组 a 中存的数;
  • 数组长度用变量 n 记录,不需要事先知道输入有多少个数。