您的位置:首页 > 其它

钢条切割1(15章:动态规划)。。。2014.5.21

2014-05-21 14:39 190 查看
钢条的切割问题:

给定一个长度为n的钢条,和一个价格表pi(i=1 2 3 4  5.。。)

求出切割钢条的方案,使得销售的收益最大。

/*
钢条切割问题的自顶向下的递归实现问题
*/
#include <STDLIB.H>
#include <STDIO.H>
#include <MATH.H>
#define N 1000
int maxim( int a,int b)//求两个数大小的问题
{
if(a>=b)
return a;
else
return b;
}
//P
为:数组下标i为长度i,数组里的数字为价格Pi。
int CUT_ROD(int P
,int n)//递归求最大收益的问题。
{
int q,i;
if(n==0)
return 0;
q=-32768;//将最大收益q初始化.
for(i=1;i<=n;i++)//
q=maxim(q,P[i]+CUT_ROD(P,n-i));
return q;
}

void main()
{
int P
,i,q;
for(i=0;i<N;i++)
P[i]=0;
P[1]=1;
P[2]=5;
P[3]=8;
P[4]=9;
P[5]=10;
P[6]=17;
P[7]=17;
P[8]=20;
P[9]=24;
P[10]=30;

q=CUT_ROD(P,5);
printf("%d",q);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: