zoukankan      html  css  js  c++  java
  • 改进昨天的电梯电梯问题

     一、    改进内容,未考虑每一个用户的最优问题,如当有两个人乘电梯分别在2层和4层停时如果只考虑整体的就会在2层3层和4层停的结果都一样,但要充分为每一个用户考虑则

    最好在3层停电梯。

    此次改进内容为实现不使用户乘坐电梯两极分化,一个累死一个不用走路问题

    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[18];
    		int[] sum1=new int[18];
    		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));
    				sum1[i]=sum[i];
    			}
    		}
    		int max=sum[0];
    		int[] j=new int[18];
    		int p=0;
    		int Floor=0;
    		int F;
    		int b=0;
    		for(int i=0;i<18;i++)
    		{
    			if(sum[i]<sum[0])
    			{	
    				sum[0]=sum[i];
    				b=i+1;
    			}	
    		}
    		for(int i=0;i<18;i++)
    		{
    			if(sum1[i]==sum[0])
    			{
    				j[p]=i;
    				Floor=Floor+(j[p]+1);
    				p++;
    				System.out.println("可应该在"+(i+1)+"层停");
    			}
    		}
    		System.out.println("考虑每个用户最优");
    		F=Floor/p;
    		System.out.println("应该在"+F+"层停");
    	}
    }
    

     三、实验截图

    四、心得体会

    要根据实际问题考虑事情,老师的要求是找到总距离最小的,但我们应该考虑到他是电梯问题,应该考虑到所有用户的感受。

  • 相关阅读:
    Android开发加快sdk更新速度
    Java 解决约瑟夫问题
    单例模式之我见
    用Java来写常见的排序算法
    一位大牛写的单例
    watchdog监控文件变化使用总结——转载
    python-tkinter使用方法——转载(二)
    python-tkinter使用方法——转载(一)
    python中字符串操作
    python中os模块操作目录与文件名小结
  • 原文地址:https://www.cnblogs.com/tianyaguying/p/4438166.html
Copyright © 2011-2022 走看看