匪夷所思
crispgm
全部博文(38)
2010年(38)
分类: C/C++
2010-05-29 23:27:26
#include <iostream> using namespace std; void generateCombination( int *a, int n ); bool isAllOnes( int *a, int n ); int findMinimumIndex( int *a, int n ); void print( int *a, int n ); void main() { int n; cin >> n; int *a = new int[ n ]; generateCombination( a, n ); delete [] a; } void generateCombination( int *a, int n ) { int i, j; for ( i = 0 ; i < n ; i++ ) a[ i ] = 0; while( !isAllOnes( a, n ) ) { j = findMinimumIndex( a, n ); a[ j ] = 1; for ( i = 0 ; i < j ; i++ ) a[ i ] = 0; print( a, n ); } } bool isAllOnes( int *a, int n ) { for ( int i = 0 ; i < n ; i++ ) { if ( a[ i ] != 1 ) return false; else continue; } return true; } int findMinimumIndex( int *a, int n ) { for ( int i = 0 ; i < n ; i++ ) if ( a[ i ] == 0 ) return i; return 0; } void print( int *a, int n ) { for ( int i = 0 ; i < n ; i++ ) if ( a[ i ] ) cout << i+1 << ", "; cout << endl; }
上一篇:希望 失望 绝望
下一篇:我
登录 注册