求几个算法 拜托了

来源:百度知道 编辑:UC知道 时间:2024/05/28 09:01:21
15、 (装箱问题)有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数)。设计一个算法在n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
16、 在杂货店比赛中你获得了第一名,奖品是一车免费杂货。店中有n 种不同的货物。规则规定从每种货物中最多只能拿一件,车子的容量为c,物品i 需占用wi 的空间,价值为pi 。你的目标是使车中装载的物品价值最大,设计一个算法,完成此功能。
17、 一个小孩买了价值少于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目不限的面值为2 5美分、1 0美分、5美分、及1美分的硬币。分步骤组成要找的零钱数,每次加入一个硬币。设计一个算法,给出售货员所找的零钱数。(选择硬币时所采用的贪婪准则如下:每一次选择应使零钱数尽量增大。为保证解法的可行性--即所给的零钱等于要找的零钱数,所选择的硬币不应使零钱总数超过最终所需的数目)。

16源程序:
#include "stdio.h"
#include "math.h"

#define M 50
main()
{int i,j,n,m;
float a[M]={0} ,max,sum=0,w[M],p[M];
printf("please get into the number of goods");
scanf("%d",&n);

printf("please get into the weight w[] and price p[]:");
for(i=0;i<n;i++)
scanf("%f %f",&w[i],&p[i]);
for(i=0;i<n;i++)
printf("w[%d]=%f,p[%d]=%f\n",i,w[i],i,p[i]);
printf("weight\t price\t avgprice\n");
for(i=0;i<n;i++)
{a[i]=p[i]/w[i];
printf("%f\t%f\t%f\n",w[i],p[i],a[i]);
}
printf("Please input bag's weight:");
scanf("%d",&m);
printf("you get the goods into you bag:\n");
printf("weight \t avprice\n");
while(m>0)
{ j=0;