c语言求最多啤酒数,C语言,算法、动态规划:有一个箱子的容量为v(正整数,0=v=20000),同时有n个物品(0n=30),...
滿意答案
24k純真愛l
2013.11.07
采納率:42%????等級:12
已幫助:9552人
#include
#define N 30
int xiangzi(int n ,int V ,int a[]) //樓主后面的Vo數(shù)組必須放進遞歸函數(shù)里面或定義成全局數(shù)組 另外h[n]什么情況??
{
int minv,t,m=V;
if(n==0)
{
if(a[n]<=V) // V是剩余空間。minv是所生最小空間,是待求變量,而不是已知的 ,不能V
minv=V-a[n];
else
minv=V;
}
else
{
t=xiangzi(n-1,V,a);
if(a[n]<=V) //可能a[n]比V大 如果按樓主的程序沒判斷 那么此時m必定小于0,最后的minv肯定是會小雨0的。應該先判斷 排除這種情礦。因此前面定義m的時候可以初始化m=V;
m=xiangzi(n-1,V-a[n],a); /*考慮選擇這個物體的情況*/
if(t
minv=t;
else
minv=m;
}
return minv;
}
void main()
{
int V;
int n,i,m,min;
int Vo[N];
printf("箱子的容量V為:");
scanf("%d",&V);
printf("物品的種類數(shù)為:");
scanf("%d",&n);
printf("物品的體積分別為:\n");
for(i=0;i
scanf("%d",&Vo[i]); //"%d "改成“%d” d后面的空格去掉。不好意思 我學的c++,c的語法不怎么東, 只是調試出來了,不知道原因,可能語法問題吧。
min=xiangzi(n-1,V,Vo);
printf("%d\n",min); //另外別忘了輸出
system("pause");
}
就這樣了。。。
00分享舉報
總結
以上是生活随笔為你收集整理的c语言求最多啤酒数,C语言,算法、动态规划:有一个箱子的容量为v(正整数,0=v=20000),同时有n个物品(0n=30),...的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: java scanner类 构造器_ja
 - 下一篇: ivew 的ajax,iView-Upl