2017去哪儿笔试题

1、住酒店的问题

我用JS实现的,当时做的时候没有编译通过,下来自己又修改的

  function countDay(arr) {
        var money=arr[arr.length-1];
        var count=0;
        var arrSort=arr.slice(0,arr.length-1).sort(function(a,b){return b-a;});//降序排列
        var max=arrSort[0];
        var min=arrSort[arrSort.length-1];

        if(min>money) {count=-1;}//如果最便宜的酒店都大于总钱数,则返回-1;

        if(money%max==0)
        {
             count=parseInt(money/max);
        }//如果总钱数除以最贵的能除尽,则返回的最少天数,即住最贵的酒店的天数最少

        if (money % max != 0) {
                count += parseInt(money / max);
                money = parseInt(money % max);
                arrSort.splice(0, 1);
                max = arrSort[0];//每次删除降序排的数组的最大的
                count += parseInt(money / max);
            }
        return count;
    }

  测试结果:

   alert(countDay([1001,1222,1002,1000]));//-1
    alert(countDay([387,2,611,1000]));//应该返回3 结果返回2 有待改进。。。。。。
    alert(countDay([1,2,1002,1000]));//500
    alert(countDay([1000,200,800,1000]));//1
    alert(countDay([10,200,800,1000]));//2

  

原文地址:https://www.cnblogs.com/olive987/p/5912731.html