“背包题目”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn,希望从N件物品中选择若干物品,所选物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。递归和非递归解法都能求得“背包题目”的一组解.
下面是背包问题的非递归解法(主要利用2进制进行遍历)
#include<iostream>
using namespace std;
void jinzhizhuanhuan(int i, int flag[])
{
int j = 0;
while (i )
{
flag[j] = i % 2;
i = i /2;
j++;
}
}
bool findbag(int bagnum,