试题系列一(求4,5,6,7所有四位数的排列组合)

1.求4,5,6,7所有四位数的排列组合。

方法一:

 1 #include<stdio.h>
 2 
 3 int main(int argc, char** argv)
 4 {
 5     int i = 0;
 6     int j = 0;
 7     int k = 0;
 8 
 9     for (i = 4; i <= 7; i++)
10     {
11         for (j = 4; j <= 7; j++ )    
12         {
13             if (i != j)
14             for (k = 4; k <= 7; k++)    
15             {
16                 if (k != i && k != j)    
17                     printf("%d%d%d%d\n", i, j, k, (22-i-j-k));                
18             }
19             
20         }
21     }
22 
23     return 0;
24 }

 

方法二:(优化)

 1 #include<stdio.h>
 2 
 3 int main(int argc, char** argv)
 4 {
 5     int i = 0;
 6     int j = 0;
 7     int k = 0;
 8 
 9     for (i = 4; i <= 7; i++)
10     {
11         for (j = 4; j <= 7; j++)    
12         {
13             if (i != j)    
14             {
15                 k = (22 - i - j) / 2;
16                 if (k != i && k != j && k != (22-i-j-k))        
17                 {
18                     printf("%d%d%d%d\n", i, j, k, (22-i-j-k));    
19                     printf("%d%d%d%d\n", i, j, (22-i-j-k), k);    
20                 }
21                 else
22                 {
23                     k--;
24                     printf("%d%d%d%d\n", i, j, k, (22-i-j-k));    
25                     printf("%d%d%d%d\n", i, j, (22-i-j-k), k);    
26                 }
27             }
28         }
29     }
30 }

 

posted @ 2015-08-18 21:12  suonikeyinsu  Views(407)  Comments(0Edit  收藏  举报