1 条题解

  • 0
    @ 2025-9-9 23:52:12

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<string>
    
    using namespace std;
    
    int a[100];
    bool b[100]={0};
    int n,m;
    
    void se(int k)
    {
    	if(k>m)
    	{
    		for(int i=1;i<=m;++i)
    			printf("%3d",a[i]);
    		cout<<endl;
    	}
    	else
    		for(int i=1;i<=n;++i)
    			if(!b[i]&&i>a[k-1])
    			{
    				a[k]=i;
    				b[i]=1;
    				se(k+1);
    				b[i]=0;
    			}
    }
    
    int main()
    {
    	cin>>n>>m;
    	se(1);
    	return 0;
    }
    

    Pascal :

                                  var a,b:array[1..100] of longint;n,i,m:longint;
    procedure try(x,y:longint); 
    var i:longint; 
    begin
      if x=m then begin for i:=1 to m do write(b[i]:3);writeln;exit;end;
      for i:=y+1 to n+x-m+1 do
        begin
          b[x+1]:=i;try(x+1,i);b[x+1]:=0;
        end; 
    end;
    begin
      readln(n,m); 
      for i:=1 to n do
        a[i]:=i; 
      try(0,0);
    end. 
    
    
    • 1

    信息

    ID
    1499
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者