切换到宽版
  • 4188阅读
  • 1回复

现在很急!十万火急!关于组合问题 [复制链接]

上一主题 下一主题
离线121371490
 
只看楼主 倒序阅读 0 发表于: 2007-11-16
组合的输出

Time Limit:1000MS  Memory Limit:65536K

Description

排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。
现要求你输出所有组合。
例如n=5,r=3,所有组合为:
l23 l24 125 l34 l35 145 234 235 245 345


Input

一行两个自然数n、r(1<n<21,1<=r<=n)。

Output

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

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

Source

联赛练习题目



我的不知道哪里错了,
帮帮忙吧!
明天就决赛了,
再晚就来不及了!
谁帮我看看这个组合哪里错了?(范围:1-21)
var
    b:array[1..21]of integer;
    c,d,i,j:integer;
procedure lk(x,y,z:integer);
begin
    for i:=x to y do
    begin
          b[z]:=i;
          if z<>d then lk(x+1,y+1,z+1);
          if z=d then
                begin
                      for j:=1 to z do
                          write(b[j],' ');
                      writeln;
                end;
    end;
end;
begin
    readln(c,d);
    lk(1,c-d+1,1);
end.
不知道为什么结果是错的!
离线121371490
只看该作者 1 发表于: 2007-11-16
就没有哪位好心的同志帮帮忙吗?
快速回复
限100 字节
 
上一个 下一个