Skip to content

问题

输入一个整数 \(n\) 。按顺序打印从 \(n\) 到 \(1\) 的所有整数,一行打印一个。共 \(n\) 个整数,共 \(n\) 行。

要求:要使用递归,不能使用循环。

准确地说,你的程序不能使用语言所提供的迭代(循环)流程控制结构,也不能使用能力等于或强于迭代的结构和标准库组件,但 可以 使用递归和分支结构。

例如,若你使用 C 或 C++ 语言,则:

  • 不允许使用:
    • for 、 while 和 do ,因为它们构成迭代结构。
    • goto ,因为它的能力强于迭代结构。
    • 标准库中其他能力等于或强于迭代的设施,例如:
      • C++ 库函数 std::for_each() 和 std::ranges::fold_left() ;
      • C 和 C++ 库函数 longjmp() 。
  • 允许使用:
    • 函数递归。这包括直接和间接递归。
    • if 、 else 和 switch ,因为它们构成分支结构。
    • return 和 break ,尽管后者是因为允许使用 switch 才被允许使用的。

示例

输入:

8

输出:

8
7
6
5
4
3
2
1

数据范围

  • \(1 \le n \le 1000\)