Codeup_5973:问题 B: 【递归入门】组合的输出-解题思路

时间:2024-03-24 09:46:32
  1. 思路:更新最后一位,最后一位更新到n时,更新上一位。
  2. 声明一个栈,将数字1入栈。
  3. 取栈顶的下一位入栈。
  4. 当栈内元素个数为r时,打印栈内元素,需要出栈一次,更新栈顶。
  5. 当栈顶为n时,需要出栈两次,更新栈顶。
  6. 重复③④⑤操作,栈为空为止。

示例:

  • 栈内元素:1,2,3,此时元素个数等于3,打印,需要一次出栈。
  • 3出栈,3的下一位4入栈,栈内元素:1,2,4。
  • 此时元素个数等于3,打印,需要一次出栈。
  • 4出栈,4的下一位5入栈,栈内元素:1,2,5。
  • 由于栈顶为5,需要两次出栈。
  • 5出栈,2出栈,2的下一位3入栈,栈内元素:1,3。