实验7-1-13 装箱问题 (20 分)
发布日期:2021-06-29 22:19:33
浏览次数:3
分类:技术文章
本文共 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月04日 06时24分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python中web.py框架的搭建
2019-04-30
python后台框架web.py使用render模板
2019-04-30
No module named MYSQLdb 问题解决
2019-04-30
python文件打开方式
2019-04-30
python汉子转码
2019-04-30
IDEA文件目录介绍
2019-04-30
IDEA2018注册码
2019-04-30
记事本的三个技巧
2019-04-30
IDEA debug操作
2019-04-30
Dojo开发(一)
2019-04-30
Excel将一列数据分隔成多列
2019-04-30
Dojo开发(三)
2019-04-30
Dojo开发(四)
2019-04-30
Dojo开发(五)
2019-04-30
Dojo开发(六)
2019-04-30
Linux curl命令详解
2019-04-30
虚拟机安装linux系统无法上网的解决方法
2019-04-30
linux命令下的ls的一些知识
2019-04-30
linux命令touch
2019-04-30