zoukankan      html  css  js  c++  java
  • [洛谷1157]组合的输出

    【问题描述】

           排列与组合是常用的数学方法,其中组合就是从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(1<n<21,1<=r<=n)。

    【输出】

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

    【样例】

           输入

           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

    var n,m:longint;
        a:array[1..100]of longint;
        p:array[1..100] of boolean;
    procedure print;
    var i,j,t:longint;
    begin
      for i:=1 to m do write(a[i]:3);
      writeln;
    end;
    procedure try(k,s:longint);
    var  i:longint;
    begin
      if k=m+1 then print
      else
       for i:=s+1 to n-m+k do
       {不明所以}
        if p[i] then
         begin
          a[k]:=i;
          p[i]:=false;
          try(k+1,i);
          p[i]:=true;
         end;
    end;
    begin
      readln(n,m);
      fillchar(p,sizeof(p),true);
      fillchar(a,sizeof(a),0);
      try(1,0);
    {搜索的是第几个数据;搜索了几个数据}
    end.
  • 相关阅读:
    背景颜色的渐变设置--实现丰富多彩的背景效果
    CSS-sprit 雪碧图
    背景图片的相关设置
    关于阿里云图标的使用 iconfont
    HTML四种定位-粘滞定位
    HTML四种定位-固定定位
    HTML四种定位-绝对定位
    HTML四种常见的定位-相对定位
    水平居中
    CentOS8更换国内镜像源
  • 原文地址:https://www.cnblogs.com/yangqingli/p/4709284.html
Copyright © 2011-2022 走看看