zoukankan      html  css  js  c++  java
  • 电梯调度

    一、题目要求

    基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。
    由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。
    问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。

    二、设计思路

    遍历每层计算最小的乘客上下楼梯层数总和

    三、实验代码

    package com.minirisoft;
    
    import java.util.Scanner;
    
    public class Dianti {
    	public static void main(String[] args)
    	{
    		Scanner input=new Scanner(System.in);
    		System.out.println("请输入有多少人用电梯");
    		int n=input.nextInt();   //上电梯人数
    		int[] array=new int[n];  //每个人要到的楼层数的数组
    		int[] sum=new int[10];   //遍历每层所有用户要上下楼数的总和的数组
    /*********乘客输入要到的楼层**************/ for(int j=0;j<n;j++) { System.out.println("请输入要到的楼层"); array[j]=input.nextInt();
    }
    /***********求每层每层所有用户要上下楼数的总和********************/ for(int i=0;i<18;i++){ for(int j=0;j<n;j++) { sum[i]=sum[i]+Math.abs(array[j]-(i+1)); } } int max=sum[0];//求出最小的用户要上下楼数的总和
    int j=0; //定位求出最小总和的层数 for(int i=0;i<18;i++) { if(sum[i]<sum[0]) { sum[0]=sum[i]; j=i; } } System.out.println("应该在"+(j+1)+"层停"); } }

     实验截图

    四、心得体会

    对电梯调度有一种全新的认识,对于向学校这样较多的人,而且体力较好的不一定把每个用户都送到目的地,可以让他们走最少的距离,这样都能节省时间

  • 相关阅读:
    C++多态
    C++和C#实现剪切板数据交互
    通过CLR API实现C++调用C#代码交互
    COM方式实现C++调用C#代码的一些总结
    输入LPCWSTR类型字符串
    取得COM对象的UUID并以string输出
    springmvc xml文件配置中使用系统环境变量
    SpringMVC,SpringBoot上传文件简洁代码
    c语言实行泛型hashmap
    java使用nio(Paths,Files)遍历文件目录,转成java.io.File
  • 原文地址:https://www.cnblogs.com/tianyaguying/p/4435081.html
Copyright © 2011-2022 走看看