子集和问题.cpp
来自「子集和问题.rar:这是我学算法设计时的总结,包括定长和不定长做法(也就是回朔法」· C++ 代码 · 共 34 行
CPP
34 行
#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 + =
减小字号Ctrl + -
显示快捷键?