※ 引述《hangchu (无瑕心灵的永恒灿烂阳光)》之铭言:
: 请问各位大大
: 现在小弟我有一个问题想不出来
: 假设有某一组数字,要想出这组数字的“所有组合的可能性”,包括单一数字
: 不晓得程式要怎么写
: 例如 1、2、3、4
: 可能性有:
: 1
: 1 2
: 1 2 3
: 1 2 3 4
: 1 3
: 1 3 4
: 1 4
: 2
: 2 3
: 2 3 4
: 2 4
: 3
: 3 4
: 4
依照 tails32100 的说法撰写,程式很短:
m = 5 ; // 假设 5 个数字
n = ( 1 << m ) - 1 ; // 集合个数
for ( i = 1 ; i <= n ; ++i ) {
cout << i << " : " ;
for ( j = 0 ; j < m ; ++j ) {
if ( i & ( 1 << j ) ) cout << ( j+1 ) << " " ;
}
cout << endl ;
}