TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P1391
  • 题目
  • P1391【分类练习1.回溯】组合的输出
    限制 : 时间限制 : 10000 MS   空间限制 : 65536 KB
    问题描述

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

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

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

    l 2 3 l 2 4 1 2 5 l 3 4 l 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5

    输入格式

    一行两个自然数n、r(0<=n,r<=20)

    输出格式

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

    样例输入

    5 3

    样例输出

     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

    提示

    注意:控制输出的位数
    printf("%Xd",i);
    表示输出的数字i占X位,若i不足X位,则左边自动用空格补足!