📄 子集和问题.cpp
字号:
#include "stdio.h"
void main()
{
int P[9]={10,20,24,25,26,30,34,35,40};
int n = 512;
int Test = 90;
int i,j;
int Sum;
for(i = 1; i < n; i++){
Sum = 0;
for(j = 0; j < 9; j++){
Sum = Sum + P[j] * ((i >> j) & 1);
}
if(Sum == Test){
for(j = 0; j < 9; j++){
if((i >> j) & 1 == 1)
printf(" %d ",P[j]);
}
printf(" \n ");
}
}
}
//p[j]-------j==1......
/*
i=1 p0]
i=2 p[1]
=3 0+1
4 p[2]
5 0+ 2
i=8 (i>>j)&1 8--> 1000 就是计算 sum=3+5;也就是p[2]+p[4]
i=7 7-->111 就是 sum =2+5 1+ 4
i==100; 110010 =64+32+4 3+ 31 +63
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -