#include <iostream>
#include <malloc.h>
using namespace std;
void deal_sum(int a[],int n,int val)
{
int count = 1;
int m = n;
int *b= (int*)calloc(0,n);
while(m--)
{
count*=2;
}
while(count--)
{
for(int i=0;i<n;i++)
{
if(0==b[i])
b[i]=1;
else
{
b[i]=0;
break;
}
}
int sum = 0;
for(int i=0;i<n;i++)
{
if(b[i]==1)sum+=a[i];
}
if(sum==val)
{
for(int i=0;i<n;i++)
{
if(b[i]==1)
cout<<a[i]<<" ";
}
cout<<endl;
}
}
}
int main()
{
int a[]={1,2,3,4,5,6,7};
deal_sum(a,sizeof(a)/sizeof(int),7);
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-09 03:16:22