zoukankan      html  css  js  c++  java
  • 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();
    				}
    			}
    		}		
    	}
    }
    
  • 相关阅读:
    14-补充内容:MySQl创建用户和授权
    15-可视化工具Navicat的使用
    11-数据的增删改
    12-单表查询
    09-完整性约束
    10-外键的变种 三种关系
    07-数据类型
    08-数据类型(2)
    Mysql 基本语法
    E. K-periodic Garland
  • 原文地址:https://www.cnblogs.com/yu-jiawei/p/12366242.html
Copyright © 2011-2022 走看看