搜索---组合数

#include<stdio.h>
 
int a[10];
 
void backtrack(int n, int r, int k){
 if(k >= r){
  for(int i = 0; i < r; ++i){
   printf("%d", a[i]);
  }
  printf("\n");
  return;
 }
 for(int i = (k == 0 ? n : a[k - 1] - 1); i >= 1; --i){
  a[k] = i;
  backtrack(n, r, k + 1);
 }
}
 
int main(){
 int n, r;
 while(~scanf("%d%d", &n, &r)){
  backtrack(n, r, 0);
 }
 return 0;
}

posted on 2016-05-07 20:28  寡言xy  阅读(95)  评论(0编辑  收藏  举报

导航