65,211
社区成员
发帖
与我相关
我的任务
分享
void main()
{
int i,j,k,num,root,data[]={3,4,5,1,2,8},bit[20]={0},sum;
root=pow(2,sizeof(data)/sizeof(int))-1;
for(i=1;i<=root;i++)
{
memset(bit,0,20);
sum=0;
num=i;
j=0;
while(num>0)
{
bit[j++]=num%2;
num=num>>1;
}
for(k=0;k<j;k++)
{
if(bit[k]==1)
sum+=data[k];
}
if(sum==10)
{
for(k=0;k<j;k++)
if(bit[k]==1)
printf("%d ",data[k]);
printf("\n");
}
}
}