首页 > 其他 > 详细

枚举排列

时间:2014-12-08 21:04:48      阅读:161      评论:0      收藏:0      [点我收藏+]

枚举排列题解
问题是将n个数排列出所有的结果,自然用到枚举法将个个可能的结果排除,中间需要判断,巧用ok的值。

 1 #include<stdio.h>
 2 int a[300];
 3 int n;
 4 void paixu(int cur)
 5 {
 6     int i,t,ok;
 7     if(cur==n+1)
 8     {
 9         for(i=1; i<=n; i++)
10             printf("%d ",a[i]);
11             printf("\n");
12     }
13     else
14     {
15         for(i=1; i<=n; i++)
16         {
17             ok=1;
18             for(t=1; t<cur; t++)
19                 if(a[t]==i)
20                 {
21                     ok=0;
22                     break;
23                 }
24             if(ok)
25             {
26                 a[cur]=i;
27                 paixu(cur+1);
28             }
29         }
30     }
31 }
32 int main()
33 {
34     int i,g;
35     scanf("%d",&n);
36     paixu(1);
37     return 0;
38 }

 

枚举排列

原文:http://www.cnblogs.com/dongq/p/4151754.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!