zoukankan      html  css  js  c++  java
  • 【算法】js实现最短时间走完不同速度的路程

    题目:

    现在有一条公路,起点是0公里,终点是100公里。这条公路被划分为N段,每一段有不同的限速。现在他们从A公里处开始,到B公里处结束。请帮他们计算在不超过限速的情况下,最少需要多少时间完成这段路程。

    输入:

    1、第一行为公路划分的段数N

    2、接下来N行,每行三个正整数,分别是起始点,终止点(前后两段一定保证是连续的),和限速值(单位:公里/小时)

    3、紧接是要计算的起始点A,和终止点B

    输出:

    1、输出为一行,即从AB需要的最少时间(单位:小时),精确到小数点后两位

    Sample Input:

    6

    0    10    10

    10  30    20

    30  40    20

    40   60     5

    60   80     5

    80   100   5

    0  20

    Sample Output:

    1.50

    Sample Input:

    4

    0     30    20

    30   40    10 

    40   80    30 

    80  100   10

    0 100

    Sample Output:

    5.83

    代码如下:

        var n = 6;  
    // 读取输入的行数
        var arr = [
            [0,  10, 10],
            [10, 30, 20],
            [30, 40, 20],
            [40, 60,  5],
            [60, 80,  5],
            [80, 100, 5]
        ];
    //所有的距离分段和对应的速度
        var temp = [0, 20];  //起始位置
        var time = 0;   //所要计算的时间
        var index = 0;  //临时变量
        var num = 0;   //临时变量
        var k;
        for(var i = 0; i < n; i++) {
    //遍历数组
            if(temp[0] >= arr[i][0] && temp[0] <= arr[i][1]) {
    //找起点所在的分段,计算起始段内需要的时间
                index = i;
                time += (arr[i][1] - temp[0]) / arr[i][2];
            }
    //找终点所在的分段 , 计算终止段内需要的时间
            if(temp[1] >= arr[i][0] && temp[1] <= arr[i][1] && (temp[1] != arr[i][0])) {
                num = i;
                time += (temp[1]- arr[i][0]) / arr[i][2];
            }
    
        }
    //计算起止位置之间的所有时间,并累加
        k = index + 1;
        while(k < num) {
            time += (arr[k][1] - arr[k][0]) / arr[k][2];
            k++;
        }
    //保留了两位小数
        console.log(time.toFixed(2));

     CSDN博客地址:http://my.csdn.net/Auyuer

  • 相关阅读:
    VS 2012 + NDK + ADT 开发(Cocos2d-x 3.1开发)PART 2
    VS 2012 + NDK + ADT 开发(Cocos2d-x 3.1开发)PART 1
    WebView读取SD卡上的HTML
    安卓隐藏控件
    OMNET++安装
    产品质量的核心——概念的完整性
    关于异常
    基类与子类之间的引用转换
    成绩划分 处理异常
    《大道至简 第七、八章》读后感
  • 原文地址:https://www.cnblogs.com/Auyuer/p/8158336.html
Copyright © 2011-2022 走看看