TouchStone
  Please Login
Login Sign Up
 Homepage  Problem Set  Course  Examinations  Submissions  Discussions  Statistics
  • Home
  • Problem Set
  • P1391
  • Problem
  • P1391【分类练习1.回溯】组合的输出
    Limits : Time Limit : 10000 MS   Memory Limit : 65536 KB
    Description

    排列与组合是常用的数学方法,其中组合就是从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

    Input Format

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

    Output Format

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

    Sample Input

    5 3

    Sample Output

    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

    Hint

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