Ka的递归编程练习 Final.Part8|回溯前传二|排列组合

 1 #include <stdio.h>
 2 int resl[1000]={0},used[1000]={0};    
 3 int n,r;
 4 int tot=0;
 5 void output()
 6 {
 7     tot++;
 8     printf("<%d>:",tot);
 9     int i;
10     for(i=1;i<=r;i++)
11         printf("%d ",resl[i]);
12     printf("
");
13 }
14 int search(int k)
15 {
16     int i;
17     for(i=1;i<=n;i++)
18         if(used[i]==0)
19         {
20             resl[k]=i;
21             used[i]=1;
22             if(k==r) output();
23             else search(k+1);
24             used[i]=0;
25         }
26 }
27 int main()
28 {
29     scanf("%d%d",&n,&r);
30     search(1);
31     return 0;
32 }

然而并没有什么卵用。

原文地址:https://www.cnblogs.com/KakagouLT/p/4508319.html