全排列

 1 #include <iostream>
 2 using namespace std;
 3 #define SIZE 6
 4 char data[SIZE]={'A','B','C','D','E','F'};
 5 char data1[SIZE];
 6 int maxnum=0;
 7 bool safe(char c,int n);
 8 void pailie(int num);
 9 void show();
10 int main()
11 {
12     pailie(0);
13     cout <<maxnum;
14     return 0;
15 }
16 
17 bool safe(char c,int n)
18 {
19     bool ret=true;
20     for(int i=0;i<n;i++)
21     {
22         if(data1[i]==c)
23             ret=false;
24     }
25     return ret;
26 }
27 void pailie(int num)
28 {
29     if(num==SIZE)
30     {
31         show();
32         return;
33     }
34     for(int i=0;i<SIZE;i++)
35     {
36         data1[num]=data[i];
37         if(safe(data1[num],num))
38         {
39             pailie(num+1);
40         }
41     }
42 }
43 
44 
45 void show()
46 {
47     maxnum++;
48     for(int i=0;i<SIZE;i++)
49     {
50         cout <<data1[i];
51     }
52     cout <<"    ";
53     if(maxnum%10==0)
54         cout <<endl;
55 }

 

posted @ 2017-01-22 11:13  jintg  阅读(133)  评论(0)    收藏  举报