求解钢材切割的最佳订单

求解钢材切割的最佳订单

ID:40851321

大小:30.50 KB

页数:3页

时间:2019-08-08

求解钢材切割的最佳订单_第1页
求解钢材切割的最佳订单_第2页
求解钢材切割的最佳订单_第3页
资源描述:

《求解钢材切割的最佳订单》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本题为第五届全国ITAT教育工程就业技能大赛决赛试题C语言程序设计第一题题目描述1、求解钢材切割的最佳订单。(60分)(1)描述:编写程序,从订单中选择一组订单对钢材作切割加工,使钢材得到最佳利用,约定每一次切割会损耗固定长度的钢材(约定该值为2)。已知线型钢材总长度、订单数和各订单需要的钢材长度;(2)输入:钢材总长度s、订单数n、各定单需要的钢材长度;(3)输出:可以使钢材得到最佳利用的订单号、该订单需要的钢材长度。例如:Pleaseinputtotallengthofthesteels:28(回车)Pleaseinp

2、utnumberofordern:8(回车)Pleaseinputtheorders:5(回车)6(回车)7(回车)8(回车)9(回车)10(回车)12(回车)15(回车)屏幕输出:Choiceoneorder1length=5order3length=7order7length=12Choicetwoorder2length=6order4length=8order6length=10Pressanykeytoquit…代码如下#include#includeint*p,*pt;in

3、tglen,dnum,i,sum=0,n,num=0;intnlen=0;voidtest(intstart,intend,intglen)//测试函数{intnu=0,len=0,n,m,i;pt[start]=1;//选中for(i=0;i<=end;i++)if(pt[i]){len+=pt[i]*p[i];nu++;}//求选中的总长if(len+(nu-2)*2==glen){for(n=1;n<=end;n++)if(pt[n])printf("订单号是:%d,长度为:%d",n,p[n]);nlen++;pr

4、intf("");}//输出if(len+(nu-2)*2

5、

6、(pt=

7、=NULL)){printf("内存不足,分配失败");return0;}p[0]=0;for(i=1;i<=dnum;i++)//输入订单需求{printf("第%d个订单需要钢材的长度",i);scanf("%d",&p[i]);}for(i=0;i<=dnum+1;i++)pt[i]=0;/*对于函数调用中,首先将每一个元素置1,选中,再递归,置0,恢复。但对于第一个元素不是这样的,只有选中的情况,没有置0的情况,当第一个元素为0时,第一层递归也就结束了,所以我第一个元素是不用的(只置1),从第二个开始,也就是下

8、标为1的元素。所以申请n+1个*///voidtest(intstart,intend,intglen);test(0,dnum,glen);printf("共有%d种方案",nlen);return0;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。