1 条题解
-
0
C++ :
#include<cstdio> #include<cstdlib> #include<iostream> using namespace std; int n,r; bool a[25]={0}; int b[25]; int print() { for(int i=1;i<=r-1;++i) { printf("%d ",b[i]); } printf("%d\n",b[r]); } int search(int i) { for(int j=1;j<=n;++j) { if(a[j]==0&&j>b[i-1]) { b[i]=j; a[j]=1; if(i==r) { print(); } else { search(i+1); } a[j]=0; } } } int main() { cin>>n>>r; search(1); return 0; }
Pascal :
var i,j,k,l,m,n:longint; a:array[1..100] of byte; procedure try(num,l:longint); var i,j:longint; begin if num=k+1 then begin for i:=1 to k do begin write(a[i]);if i<>k then write(' ');end;writeln;exit;end; for i:=l+1 to m-k+num do begin a[num]:=i;try(num+1,i); end; end; begin read(m,k); try(1,0); end.
Java :
import java.util.Scanner; public class Main { static int M,N; static int [] arr; public static void main(String[] args) { Scanner cin = new Scanner(System.in); M = cin.nextInt(); N = cin.nextInt(); arr = new int[N+1]; combin(M,N); } public static void combin(int m,int n) { if(n == 0) { for(int i = 1; i <= N; i ++) { System.out.print(arr[i]); if(i == N) System.out.println(); else System.out.print(" "); } }else if(m < n){ return ; }else { combin(m-1,n); arr[n] = m; combin(m-1,n-1); } } }
- 1
信息
- ID
- 652
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者