问题提出
给定一个容积为c的背包,去尝试装n个重量为wi、价值为vi的物体,求能装下的物体的最大价值。
#include<stdio.h>
#include<math.h>
#define n 5
int main(){
int values[n]={10,4,2,2,1};
int weights[n]={4,12,2,1,1};
int Maxweight=15;
int Maxvalue=0;
int value,weight;
int temp;
for(int i=0;i<pow(2,n);i++){
temp=i;
value=0,weight=0;
for(int j=0;j<n;j++){
if(temp%2==1){
value+=values[j];
weight+=weights[j];
}
temp/=2;
}
if(Maxvalue<value&&weight<=Maxweight){
Maxvalue=value;
}
}
printf("%d\n",Maxvalue);
return 0;
}