小明总共有n元,商店里有
电视:1999元
充电宝:79
电池:1写一段程序:指出小明用光n元,买到最少件物品的件数

解决方案 »

  1.   


    function minLen(total) {
        let res = 0, leftNum = total, allPrice = [1999,79,1]
        while(allPrice.length){
            let price = allPrice.shift()
            if(leftNum/price >= 1){
                res += Math.floor(leftNum/price)
            }
            leftNum = leftNum%price
        }
        return res
    }
      

  2.   


    function aaa(n){
      var items = {电视:1999,充电宝:79,电池:1}
      var result = {length:0,count:0}
      for(var i in items){
    result.length++;
    result[result.length-1]=i;
    result[i]=0;
      }
      for(var i=0;i<result.length;i++){
      while(n>items[result[i]]){
    var m = Math.floor(n/items[result[i]])
    result[result[i]] = m;
    result['count']+=m;
    n = n - m * items[result[i]];
      }
      }
      return result
    }console.log(aaa(100000))
      

  3.   

    如果价格不是固定,那么items里的数据需要时排序后的,从大到小,如果最小数字不是1,且要完整花光,那就是另外的算法了