您的位置:首页 > 其它

算法导论 钢条切割问题

2017-05-20 21:15 274 查看
#include <stdio.h>
#include <limits.h>

int p[11]={0,1,5,8,9,10,17,17,20,24,30};
int r[11],s[11];

int max(int a,int b)
{
return a>=b?a:b;
}

void bottomUpCutRod(int n)
{
r[0]=0;
int q;
for(int i=1;i<=n;i++)
{
q=INT_MIN;
for(int j=1;j<=i;j++)
{
if(q<p[j]+r[i-j])
{
s[i]=j;
q=p[j]+r[i-j];
}
}
r[i]=q;
}
}

void printS(int n)
{
while(n>0)
{
printf("%d ",s
);
n-=s
;
}
printf("\n");
}

int main()
{
bottomUpCutRod(7);
printf("%d\n",r[7]);
printS(7);
getchar();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: