33,311
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
#define MAX_N 4
void output( int * num , int * flag , int sum , int pos )
{
int i;
if( pos == MAX_N )
{
if( sum == 0 )
{
cout << "{";
for( i = 0 ; i < MAX_N - 1 ; i++ ) cout << flag[ i ] << ",";
cout << flag[ i ] << "}" << endl;
}
}
else
{
flag[ pos ] = 1;
output( num , flag , sum - num[ pos ] , pos + 1 );
flag[ pos ] = 0;
output( num , flag , sum , pos + 1 );
}
}
int main()
{
int num[]= { 24 , 7 , 11 , 13 };
int flag[ MAX_N ];
output( num , flag , 31 , 0 );
return 0;
}