201609-2 火车购票 Java
思路待补充
import java.util.Scanner;
class Main{
public static void main(String[] args) {
//100个座位
int[] seat = new int[100];
Scanner sc = new Scanner(System.in);
//购票指令的数量
int n = sc.nextInt();
//存储每次的购票数量
int[] record = new int[n];
//初始化购票指令
for(int i = 0;i<n;i++){
record[i] = sc.nextInt();
}
sc.close();
//开始购票
for(int i = 0;i<n;i++){
//将每次购票放在一个变量num中
int num = record[i];
//是否有连续座位
boolean flag = false;
for(int x = 0;x<20;x++){
for(int y = 0;y<5;y++){
//当前这个位置没有被安排
//且当前行开始+当前需要预定票数要<=5
if(seat[x*5+y]==0&&y+num<=5){
for(int z = x*5+y;z<x*5+y+num;z++){
//第一次购票,就在座位标记1,第二次购票,就在座位标记2
seat[z] = i+1;
}
//有连续座位
flag = true;
//跳出第三个for循环
break;
}
}
//跳出第二个for循环
if(flag){
break;
}
}
//初始的flag是false,如果经过中间三个for循环,flag就是true,就进不了下面的if
//查看flag,如果没有连续座位,就是从前到后遍历,每一个座位遇到0,就置数字
if(!flag){
while(num-->0){
for(int w = 0;w<100;w++){
if(seat[w]==0){
seat[w] = i+1;
//置完一次就跳出for循环,给本次购票 下一张票找位置
break;
}
}
}
}
}
//开始遍历座位输出
//定义一个count,记录每一次购票是否达到本次购票数目
int count = 0;
for(int i = 0,j = 1;i<100;i++){
if(seat[i]==j){
System.out.print(i+1+" ");
count++;
//如果count等于本次购票数目,就重新开始遍历,i和count置0;j++,进行下一个购票指令
if(count==record[j-1]){
i = 0;
j++;
count = 0;
System.out.println();
}
}
}
}
}
201609-2 火车购票 Java的更多相关文章
- CCF201609-2 火车购票 java(100分)
试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一 ...
- 【刷题笔记】火车购票-----java方案
问题描述请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号 ...
- CCF|火车购票|Java|80分
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Sc ...
- CCF CSP 201609-2 火车购票
题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...
- CCF 2016-09-2 火车购票
CCF 2016-09-2 火车购票 题目 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的 ...
- 火车购票问题(16年ccf)
火车购票问题(16年ccf) 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一 ...
- ccf 火车购票
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main2 { pu ...
- CCF 201612-2 火车购票 (暴力)
问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...
- CCF2016092火车购票
问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...
随机推荐
- 006.Oracle数据库 , DISTINCT去掉重复项重复内容
/*Oracle数据库查询日期在两者之间*/ SELECT DISTINCT OCCUR_DATE FROM LM_FAULT WHERE ( ( OCCUR_DATE >= to_date( ...
- U盘启动盘空间变小
Windows下管理员身份运行cmd,调用diskpart,约5秒进入程序 磁盘管理中新建卷. 建议使用Rufus制作U盘启动盘.
- 树莓派 Raspberry 软件源更改 看门狗启用
看门狗无法在pi1上执行,似乎后更高级的pi上面才可用 1.替换脚本 下面脚本请直接复制到终端执行!! 适用于raspbian-stretch(基于Debian9) sudo -s echo -e & ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-plus
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- Redis混合存储-冷热数据识别与交换
Redis混合存储产品是阿里云自主研发的完全兼容Redis协议和特性的混合存储产品. 通过将部分冷数据存储到磁盘,在保证绝大部分访问性能不下降的基础上,大大降低了用户成本并突破了内存对Redis单实例 ...
- HDU1007 Quoit Design掷环游戏
Quoit Design 看懂题意以后发现就是找平面最近点对间距离除以2. 平面上最近点对是经典的分治,我的解析 直接上代码 #include<bits/stdc++.h> using n ...
- P 1008 说反话
转跳点:
- Windows 10中使用VirtualBox
新版Windows 10或者安装了新的更新以后,VirtualBox虚拟机就不能用了. 原因是WIndows10里面有个叫Virtualization-base security的安全机制打开了. 关 ...
- Spring Boot2(004):关于 Build Systems (构建系统)
Spring Boot Ref 建议使用 maven 或者 gradle 来进行依赖管理和应用构建. 一.Dependency Management(依赖管理) Spring Boot 的每个版本都会 ...
- Django——整体结构/MVT设计模式
MVT设计模式 Models 封装数据库,对数据进行增删改查; Views 进行业务逻辑的处理 Templates 进行前端展示 前端展示看到的是模板 --> 发起 ...