• 课堂练习之乘坐电梯的方法


    一、设计思路

      对这个问题进行思考的过程中,还是选择了最原始的方法,需要上电梯的人,没人都按下自己要前往的目的楼层,然后假设一个最优的目的楼层,

    用每个人按下的目的楼层减去假设的最优楼层,取绝对值然后再相加,所得的和就是全部人需要爬的楼层数,然后选择最小的值,返回它的脚标,就是最优的目的楼层数。

    二、源代码

     1 import java.util.*;
     2 
     3 class Elevator
     4 {    
     5     public static int min(int s[])
     6     {
     7         int min = s[0];
     8         int temp = 0;
     9         for (int dest=0;dest<s.length ;dest++ )
    10         {
    11             if(s[dest]<min)
    12             {
    13                 temp = dest;
    14             }        
    15         }
    16         return temp-1;
    17     }
    18     public static void main(String[] args) 
    19     {
    20         System.out.print("请输入要乘坐电梯的人数:");
    21         Scanner sc = new Scanner(System.in);
    22         int num = sc.nextInt();
    23         int[] arr = new int[num];
    24         
    25         int dest = 0;//目的楼层
    26         int max = arr[0];
    27         for (int i=0;i<arr.length ;i++ )//循环接收楼层数
    28         {
    29             System.out.print("请第"+(i+1)+"个人输入要去的楼层:");
    30             Scanner sc1 = new Scanner(System.in);
    31             int n = sc1.nextInt();
    32             arr[i] = n;
    33         }
    34         for (int i=0;i<arr.length ;i++ )
    35         {
    36             if(arr[i]>max)
    37                 max = arr[i];
    38         }
    39         int[] sum = new int[max];
    40         for (dest=1;dest<=max ;dest++ )
    41         {
    42             for (int i=0;i<arr.length ;i++ )
    43             {
    44                 sum[dest-1] += Math.abs(arr[i]-dest);
    45             }
    46             System.out.println("如果要到达第"+dest+"层,全部人需要爬的楼层总和为:"+sum[dest-1]+"层");
    47         }        
    48         System.out.println("因此应该到达的楼层数是:"+min(sum)+"层");
    49         
    50     }
    51 }

    三、实验结果

    四、心得体会
     对于这种问题来说,还是相对侧重于数学的思想,解决问题的方法与很多,我想的这个也是最原始,最好想的,
    实现起来也没有什么难度,但是还是应该有其他的更优的算法,还是应该多思考,多想一想还是对编程是有帮助的。

  • 相关阅读:
    linux下搭建lamp环境以及安装swoole扩展
    TP5 中引入第三方类库
    thinkphp5 查询的数据是对象时,获取原始数据方法
    thinkphp5 列表页数据分页查询3-带搜索条件
    thinkphp5 列表页数据分页查询2-带搜索条件
    thinkphp5 列表页数据分页查询-带搜索条件
    thinkphp5 怎么获取当前的模块,控制器和方法名
    限定页面执行时间,请求超时抛出异常或提示
    centos安装netcat
    redis在PHP中的基本使用案例
  • 原文地址:https://www.cnblogs.com/KevinBin/p/4438968.html
Copyright © 2020-2023  润新知