装箱问题(20 分)
假设有N项物品,大小分别为s1、s2、…、si、…、sN,其中si为满足1的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。
输入格式:
输入第一行给出物品个数N(≤);第二行给出N个正整数si(1,表示第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>
struct box{ int data;//定义一个结构体包含 大小(data), int num; //装箱的位数 int f; //判断是否装箱f=0时未装箱,反之f=1
}B[1001];
int main(){int n,i,num=1,sum=0,m;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&B[i].data);B[i].f=0; //最初都为0 }m=n;while(m){ //当m为零的时候,所有物品装箱完毕,跳出循序 for(i=0;i<n;i++){ //一个一个的遍历 if(B[i].f==0){ //只考虑未装箱的 sum+=B[i].data;if(sum<=100){ //如果未超过箱子的容量 B[i].f=1; //装箱成功f赋值为 1B[i].num=num; //记录 装入第几个箱子 m--; //装箱成功一个物品就减去一个 }else //超过了就不加本物品,继续往下遍历 sum-=B[i].data;} } sum=0; //偏历完一次后,箱子加1,同样容量归0 num++;}for(i=0;i<n;i++)printf("%d %d\n",B[i].data,B[i].num);printf("%d\n",num-1);return 0;
}
装箱问题(20 分)相关推荐
- 实验7-1-13 装箱问题 (20分)
实验7-1-13 装箱问题 (20分) 假设有N项物品,大小分别为s 1 .s 2 .-.s i .-.s N ,其中s i 为满足1≤s i ≤100 ...
- 7-1 装箱问题 (50分)
7-1 装箱问题 (50分) 假设有N项物品,大小分别为s1 .s2 .-.si .-.sN,其中si为满足1≤si ≤100的整数.要把这些物品装入到容量为100的一批箱子(序号 ...
- 7-1 查找书籍(20 分)(程序设计天梯赛模拟练习题)
7-1 查找书籍(20 分) 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价. 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息.每本书 ...
- PTA—输出全排列 (20分) 递归回溯思想
PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...
- 2、求100以内的素数之和。(20分)
题目: /* 2.求100以内的素数之和.(20分) */ 代码: public class Two207 {public static void main(String[] args) {int s ...
- 1、输入四个整数,按照从小到大顺序输出。(20分)
题目: /* 1.输入四个整数,按照从小到大顺序输出.(20分) */ 代码: 注:题目说的是四个数的排序,我就直接写了个冒泡排序 public class One207 {public static ...
- /* * 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“
题目: 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***************** 所谓" ...
- /* * 编程题第四题(20分): 用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案。 */
题目: /* 编程题第四题(20分): 用1元5角钱人名币兑换5分.2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案. */ 我使用java做的 public class ...
- /* * 编程第三题(20分) 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。(例153=1*1*1+3*3*3+5*5*5) */
题目: /* 编程第三题(20分) 打印所有的水仙花数.所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身.(例153=111+333+555) */ 我是用java做的 public cla ...
- /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */
题目: /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第十次落地时,共经过多少米?第十次反弹多高? */ 我是用java做的 public ...
最新文章
- 计算当前时间对应的本周一、上周一
- Selenium+java - 借助autolt完成上传文件操作
- Git之hotfix热修复分支
- 谷歌大脑科学家亲解 LSTM:一个关于“遗忘”与“记忆”的故事 本文作者:奕欣	2017-01-14 09:46 导语:AI科技评论保证这是相对通俗易懂的一篇入门介绍了,看不懂的话欢迎关注「AI 科技
- mysql自动备份脚本linux_一个Mysql自动备份脚本,定时备份MYSQ脚本,linux下Mysql自动备份脚本...
- .size .shape .size() type的运用
- Android蓝牙通信功能开发
- 微信重大更新,mac版可刷朋友圈!
- 字更大、页面更简单 淘宝长辈模式正式上线
- VC++6.0 内存泄露(Memory Leaks)征兆1
- SVM支持向量机:分类、回归和核函数
- C++并发编程之std::future
- 20201007:力扣209周周赛题解记录(上)
- AI学习笔记(十五)自然语言处理基本概念
- 苹果发信用卡——大数据解读硅谷巨头如何发力金融科技
- CUGBACM130715 组队赛 BNU Curvy Little Bottles - from lanshui_Yang
- M0n0Wall防火墙安装配置
- [原创]软件性能测试培训
- mysql 64 免安装_MYSQL 免安装版(windows 7/64)
- 微信小程序 第三方平台授权小程序业务
热门文章
- [zotero] PDF translate 有道智云API接入
- c语言编程季节输出春夏秋冬,根据输入1~12之间的数字,判断是春夏秋冬那个季节,要求使用方法定义四个季节.输出的结果图是:请输入月份:6该季节为夏季...
- 服务器断电数据库文件好几个,一个服务器放多个数据库好么
- 上市公司的工程师,水平怎么样?看看这个案例
- 1.JavaScript中定义数组的两种主要方式
- python学什么教学_python零基础教学之列表教学
- Mail merge region 'tablePrint' is badly formed. TableStart and TableEnd should be in the same sectio
- 过年了,用 PyQt5 生成一副春联吧...
- springboot 整合 redis布隆过滤器
- c#endread怎么打印出来_C# 小票打印机 ESC命令行方式打印