实验7-1-13 装箱问题 (20 分)
发布日期:2021-06-29 22:19:33
浏览次数:4
分类:技术文章
本文共 910 字,大约阅读时间需要 3 分钟。
实验7-1-13 装箱问题 (20 分)
假设有N项物品,大小分别为s 1 、s 2 、…、s i 、…、s N ,其中s i 为满足1≤s i ≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输入格式:
输入第一行给出物品个数N(≤1000);第二行给出N个正整数s i (1≤s i ≤100,表示第i项物品的大小)。输出格式:
按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。输入样例:
8 60 70 80 90 30 40 10 20 输出样例: 60 1 70 2 80 3 90 4 30 1 40 5 10 1 20 2 5 #include<stdio.h> int main() { int n,i,j,max=0; static int a[10000],index[10000],b[10000]; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } for(i=0;i<n;i++) { for(j=0;j<i;j++) { if(a[i]+a[j]<=100) { a[j]=a[j]+a[i]; a[i]=0; index[i]=j;//index[物品的偏号]=箱子的偏号//箱子的个数; break; // 一旦找到符合的,立刻跳出内层循环;否则会连续赋值; } else index[i]=i; } } max=0; for(i=0;i<n;i++) { if(index[max]<index[i]) max=i; } for(i=0;i<n;i++) { printf("%d %d\n",b[i],index[i]+1);//加一的目的是箱子的编号是从1开始的; } printf("%d",index[max]+1); return 0; }转载地址:https://dingshijie.blog.csdn.net/article/details/87260592 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月18日 11时29分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
19.docker之dockerCompose基础
2019-04-30
20.docker之DockerCompose基础进阶
2019-04-30
1.全局异常处理
2019-04-30
3.mysql 索引基础知识
2019-04-30
线程、事件与QObject
2019-04-30
树莓派4不连接显示器开机的方法
2019-04-30
[转]ffmpeg在vs2008中的使用
2019-04-30
[转]用"树莓派"打造一款智能音响(也许有点智障。。。)
2019-04-30
学习笔记(02):一学即懂的计算机视觉(第一季)-什么是视觉?
2019-04-30
学习笔记(03):一学即懂的计算机视觉(第一季)-第一个计算机视觉程序
2019-04-30
学习笔记(04):一学即懂的计算机视觉(第一季)-计算机视觉方向知识体系结构...
2019-04-30
学习笔记(05):一学即懂的计算机视觉(第一季)-学了视觉可以做什么
2019-04-30
学习笔记(06):一学即懂的计算机视觉(第一季)-有光即有世界:照明模型
2019-04-30
学习笔记(08):一学即懂的计算机视觉(第一季)-实战演练:颜色空间分解
2019-04-30
学习笔记(09):一学即懂的计算机视觉(第一季)-最浅显的卷积与滤波概念讲解!...
2019-04-30
学习笔记(10):一学即懂的计算机视觉(第一季)-图像平滑滤波与去噪
2019-04-30
学习笔记(11):一学即懂的计算机视觉(第一季)-数学形态学滤波
2019-04-30
学习笔记(12):一学即懂的计算机视觉(第一季)-实战演练:图像平滑滤波对比...
2019-04-30
学习笔记(14):一学即懂的计算机视觉(第一季)-Canny算子
2019-04-30
学习笔记(15):一学即懂的计算机视觉(第一季)-程序示例
2019-04-30