64,662
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
int baibao(int a[],int b[],int sum);
int main()
{
int a[10];
int b[10];
cout<<"请输入四个物品所对应的质量:"<<endl;
for(int i=1;i<=4;i++)
cin>>a[i];
cout<<"请输入四个物品所对应的价值:"<<endl;
for(i=1;i<=4;i++)
cin>>b[i];
cout<<"请出入背包的总容量"<<endl;
int sum;
cin>>sum;
cout<<baibao(a,b,sum)<<endl;
return 1;
}
int baibao(int a[],int b[],int sum)
{
int i=0;
int j=0;
int v[11][100];
for(i=0;i<10;i++)
{
v[0][i]=0;
v[i][0]=0;
}
for(i=1;i<=4;i++)
for(j=1;j<=sum;j++)
{
v[i][j]=v[i-1][j];
if(j>=a[i])
{
v[i][j]=v[i][j]>(v[i-1][j-a[i]]+b[i])?v[i][j]:(v[i-1][j-a[i]]+b[i]);
}
}
for(i=0;i<=4;i++)
{
for(j=0;j<=9;j++)
cout<<v[i][j]<<"\t";
cout<<endl;
}
return v[4][sum];
}