问题描述:
已知个正数,
和
。要求找出
中和为
的所有子集。例如,
,则满足条件的解{7,11,13}和{7,24}。
此类问题可利用回溯法遍历解空间中的所有解向量来输出所有解。下面集合代码和函数调用的堆栈来理解回溯中的问题。
#include <iostream>
using namespace std;
//cursum:前k个数的和【前提是它被取】
//curpos:当前遍历时,数组的下标
//res: 剩余的和
//M:和数M
已知个正数,
和
。要求找出
中和为
的所有子集。例如,
,则满足条件的解{7,11,13}和{7,24}。
此类问题可利用回溯法遍历解空间中的所有解向量来输出所有解。下面集合代码和函数调用的堆栈来理解回溯中的问题。
#include <iostream>
using namespace std;
//cursum:前k个数的和【前提是它被取】
//curpos:当前遍历时,数组的下标
//res: 剩余的和
//M:和数M