当前位置: 首页 > news >正文

编程新手入门到入土(1)——装箱问题

目录:

  1. 问题引入;
  2. 问题介绍和思路;
  3. 解决方案;

问题引入

题目描述

一个工厂制造的产品形状都是长方体,他们的高度都是h,长和宽都相等,一共有6个型号,他们的长宽分别为1X1,2X2,3X3,4X4,5X5,6X6。这些产品通常需要一个6X6Xh的长方体包裹包装,然后邮寄给客户。因为邮费很贵,所以工厂要想方设法地减少每个订单运送时的包裹数量。他们很需要有一个好的程序以解决这个问题从而节省费用。现在这个程序由你来设计。

输入

每个订单信息用包括6个整数的一行数据表示,中间用空格隔开,分别为1X1至6X6这6种产品的数量。

输出

输出一个整数代表对应的订单所需的最小包裹数。

样例输入

9 5 3 2 4 6

样例输出

13

问题介绍

如题目所述,我们需要求得订单所需的最小包裹数,就说明需要尽量地利用每一个包裹中的空间。

接下来我们分别讨论不同情况下可以计算的最优方案。

因为2X2和1X1的产品比较小,可以考虑用来补其他包裹剩下的空隙。

先考虑用2X2来补空,最后用1X1来补剩下杂乱的空位。

放入6X6产品时

这时包裹被装满,不能再放入别的包裹。

放入5X5产品时

这时包裹有剩余空间,但只能放入1X1的包裹。

放入4X4产品时

这时的包裹剩余空间较大,最多可以放入5个2X2包裹。

放入3X3产品时

放入3X3产品的情况比较特殊,因为包裹中可以放下不同数量的3X3产品,所导致剩余的空间中放入的2X2产品数量会不一样。

放入4个3X3产品时

这时包裹被装满,不能放入其他产品。

放入3个3X3产品时

这时剩余的空间最多能放入1个2X2产品。

放入2个3X3产品时

这时剩余的空间最多能放入3个2X2产品。

放入1个3X3产品时

这时剩余的空间最多能放入5个2X2产品。

至此,复杂的情况已经分析完毕,接下来可以进行代码的书写。

解决方案

    #include<stdio.h>#include<math.h>intmain(){return0;}
    1. 设置数组来储存6种不同产品的数量,为了方便,可以直接舍弃product[0]。

    同时,根据上文中我们讨论的不同数量3X3产品时2X2产品最多能放入的量也创立数组,同样舍弃s3_l2[0]。

    读入6种产品的数量。定义总需要的包裹数为bgs。

    intproduct[7]={0};ints3_l2[4]={0,5,3,1};scanf("%d %d %d %d %d %d",&product[1],&product[2],&product[3],&product[4],&product[5],&product[6]);intbgs=0;
    1. 先计算6X6到3X3产品需要的包裹数。

    由于在3X3产品数不是4的倍数时,需要额外再加一个包裹,此处采用ceil函数。

    同时,判断剩余用来可存放2X2的空间是否足够2X2产品的数量,如果不够就继续加。

    bgs=product[6]+product[5]+product[4]+ceil(product[3]*1.0/4);intkwei_2=product[4]*5+s3_l2[product[3]%4];if(product[2]>kwei_2){bgs+=ceil((product[2]-kwei_2)*1.0/9);}
    1. 然后计算剩余可以用来存放1X1产品的空间,与实际数量进行比较,不够就继续加。

    我们在这里计算采用总的空间-已经用去的空间。

    intkwei_1=bgs*36-product[6]*36-product[5]*25-product[4]*16-product[3]*9-product[2]*4;if(product[1]>kwei_1){bgs+=ceil((product[1]-kwei_1)*1.0/36);}
    1. 最后输出结果bgs。
    printf("%d\n",bgs);

    到这里,本道题已经解决完毕,下面是本题的完整代码。

    #include<stdio.h>#include<math.h>intmain(){intproduct[7]={0};ints3_l2[4]={0,1,3,5};intbgs;scanf("%d %d %d %d %d %d",&product[1],&product[2],&product[3],&product[4],&product[5],&product[6]);bgs=product[6]+product[5]+product[4]+ceil(product[3]*1.0/4);intkwei_2=product[4]*5+s3_l2[product[3]%4];if(product[2]>kwei_2){bgs=bgs+ceil((product[2]-kwei_2)*1.0/9);}intkwei_1=bgs*36-product[6]*36-product[5]*25-product[4]*16-product[3]*9-product[2]*4;if(kwei_1<product[1]){bgs=bgs+ceil((product[1]-kwei_1)*1.0/36);}printf("%d\n",bgs);return0;}

    到了这里,很感谢大家可以看完,如果有什么不足可以提出,我会努力改进的。

    http://www.jsqmd.com/news/691214/

    相关文章:

  1. 灵机一物AI原生电商小程序、PC端(已上线)-从 Vibe Coding 到 Wish Coding:AI 编程范式跃迁与蚂蚁灵光技术解读
  2. 山水如画,旅居有家!阿媚农家乐重装开业,解锁永嘉乡村旅居新生活
  3. MySQL 索引介绍
  4. Flux2-Klein-9B-True-V2多场景落地:政府宣传海报/公益广告图生成实践
  5. 2026姜堰网站优化技术全解:姜堰网站建设/姜堰网络公司/泰兴geo优化/泰兴做网站/泰兴网站优化/泰兴网站建设/选择指南 - 优质品牌商家
  6. AI超清画质增强镜像:5分钟部署,老照片修复效果实测
  7. DoL-Lyra整合包:5分钟从“白板游戏“到“视觉盛宴“的终极美化指南
  8. Realtek RTL8127 10GbE网卡评测与选购指南
  9. 无叶风扇驱动器方案:主控芯片HC32F030,无感FOC驱动及电流环、速度环控制的顺逆风启动控制
  10. AutoGen Studio影视特效:AI生成超现实场景展示
  11. PPT图片视频音频提取神器,PPT模板不求人,建议使用
  12. Phi-3.5-mini-instruct开源镜像解析:vLLM服务结构、Chainlit组件依赖与启动脚本
  13. 2026光伏支架配件选型全指南:光伏支架型号/光伏支架系统/光伏支架设计/光伏支架配件/光伏支架采购/光伏桥架/选择指南 - 优质品牌商家
  14. SSE库选型+fetch-event-source示例
  15. VSCode容器化调试失效的7大隐性陷阱(2026版内核级日志追踪实录):92%开发者踩坑却不知其源
  16. mp-html实战指南:小程序富文本解析的深度避坑手册
  17. 2026年机器人编码器厂家排行榜:国产高端突围,锐鹰传感领跑赛道
  18. 云原生入门系列|第4集:K8s控制器全解析!零基础搞懂Deployment部署的底层逻辑
  19. 什么样的高新技术企业容易被“选中”核查?核查的重点又是什么?
  20. 问卷设计对比:手工瞎编 vs AI 智能生成,为什么虎贲等考 AI 一次就能过审?
  21. Qwen3.5-9B软件测试面试宝典:用例设计与自动化脚本生成
  22. 千问3.5-9B在C语言教学中的应用:代码分析与调试助手
  23. DeepPCB:如何用1500对工业级图像彻底解决PCB缺陷检测难题?
  24. 2026溧阳车窗贴膜技术全解析:溧阳车身贴膜、溧阳隐形车衣、溧阳高端汽车贴膜、溧阳专业贴膜、溧阳全车贴膜、溧阳新车贴膜选择指南 - 优质品牌商家
  25. 10个Python一行代码实现时间序列特征工程
  26. 2026道路隔音板厂家推荐 产能规模+专利技术+环保认证三重保障 - 爱采购寻源宝典
  27. 告别低效培训!SKC 智能知识协作平台:让企业学习从 “走过场” 变 “真落地”
  28. 万象视界灵坛一文详解:像素风UI如何降低多模态分析认知负荷
  29. 四川企业必看:2026年政府资金申报指南——专项债、中央预算内投资、超长期特别国债怎么申请?
  30. Real-Anime-Z在软件测试中的应用:自动生成UI测试用例配图