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
浙公网安备 33010602011771号