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.
  • 相关阅读:
    用例失败重新运行
    pytest启动浏览器,失败用例截图
    解决pycharm问题:module 'pip' has no attribute 'main'
    pytest的HTML
    pytest 的 yield
    pytest的setup和teardown
    pytest的fixture和conftest
    pycharm运行pytest
    简单易用的MongoDB
    快速入门系列--CLR--02多线程
  • 原文地址:https://www.cnblogs.com/yangqingli/p/4709284.html
Copyright © 2011-2022 走看看