//w物品价值数组,v物品体积数组,
int getMax(int a,int b){return a>=b?a:b;}; int w[11] = {-1,1,1,1,2,2,2,3,4,5,6}; int v[11] = {-1,1,2,3,3,3,4,4,1,6,7};//通过调用maxValue(10,30);
int maxValue(int i,int surplusV){ if(i == 1 && surplusV >= v[1]) return w[1]; else if(i == 1&& surplusV < v[1]) return 0; else if(v[i] > surplusV) return maxValue(i-1,surplusV); else{ int l = maxValue(i-1,surplusV); int r = maxValue(i-1,surplusV-v[i]) + w[i]; return getMax(l,r); } }