C++ Exercises(八)

全排列问题:


#include 
" stdafx.h "
#include 
< math.h >
#include 
< stdio.h >
#include 
< iostream >
using   namespace  std;

void  swap( int &  a, int &  b)
{
    
int  tmp;
    tmp 
=  a;
    a 
=  b;
    b 
=  tmp;
}
void  Rerange( int  a[], int  m, int  n)
{
    
if (m == n)
    {
        
for ( int  j = 0 ;j <= m; ++ j)
            cout
<< a[j] << ' \t ' ;
        cout
<< endl;
    }
    
else
    {
        
for ( int  i = m;i <= n; ++ i)
        {
            swap(a[m],a[i]);
            
            Rerange(a,m
+ 1 ,n);
            swap(a[m],a[i]);

        }
    }
}

int  main( void )
{
    
int  a[]  =  { 1 , 2 , 3 },tmp;
    Rerange(a,
0 , 2 );
    cin
>> tmp;
    
return   0 ;
}

你可能感兴趣的:(C++)