P1157 组合的输出

    • 2.4K通过
    • 5.4K提交
  • 题目提供者
  • 评测方式 云端评测
  • 标签 排列组合 搜索 递归
  • 难度 普及-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目描述

    排列与组合是常用的数学方法,其中组合就是从 $n$ 个元素中抽出 $r$ 个元素(不分顺序且 $r \le n)$ ,我们可以简单地将 $n$ 个元素理解为自然数 $1,2,…,n$ ,从中任取 $r$ 个数。

    现要求你不用递归的方法输出所有组合。

    例如 $n=5,r=3$ ,所有组合为:

    $12 3 , 1 2 4 , 1 2 5 , 1 3 4 ,1 3 5 , 1 4 5 , 2 3 4 , 2 3 5 , 2 4 5 , 3 4 5$

    输入输出格式

    输入格式:

    一行两个自然数 $n,r(1<n<21,1 \le r \le n)$ 。

    输出格式:

    所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。

    **注意哦!输出时,每个数字需要 $3$ 个场宽,pascal可以这样:

    write(ans:3);

    输入输出样例

    输入样例#1: 复制
    5 3 
    
    输出样例#1: 复制
      1  2  3
      1  2  4
      1  2  5
      1  3  4
      1  3  5
      1  4  5
      2  3  4
      2  3  5
      2  4  5
      3  4  5
    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。