电梯调度
一、题目要求
基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信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)+"层停");
}
}
实验截图


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

浙公网安备 33010602011771号