问题
输入一个整数 \(n\) 。按顺序打印从 \(n\) 到 \(1\) 的所有整数,一行打印一个。共 \(n\) 个整数,共 \(n\) 行。
要求:要使用递归,不能使用循环。
准确地说,你的程序不能使用语言所提供的迭代(循环)流程控制结构,也不能使用能力等于或强于迭代的结构和标准库组件,但 可以 使用递归和分支结构。
例如,若你使用 C 或 C++ 语言,则:
- 不允许使用:
for、while和do,因为它们构成迭代结构。goto,因为它的能力强于迭代结构。- 标准库中其他能力等于或强于迭代的设施,例如:
- C++ 库函数
std::for_each()和std::ranges::fold_left(); - C 和 C++ 库函数
longjmp()。
- C++ 库函数
- 允许使用:
- 函数递归。这包括直接和间接递归。
if、else和switch,因为它们构成分支结构。return和break,尽管后者是因为允许使用switch才被允许使用的。
示例
输入:
输出:
数据范围
- \(1 \le n \le 1000\)