zoukankan      html  css  js  c++  java
  • 面试趣味题

    题目:一元钱可以买到一瓶水,两个空瓶子可以换一瓶水,小明有20元钱,问最多可以喝多少瓶水?

      在面试的时候做了一个这种逻辑题。当时只是要求写出最后的结果。没有要求用代码来实现。我下面准备先分析一下,然后再转换成代码去实现。

       根据这个示意图可以简单的算出最多可喝39瓶水,还剩一个空瓶。

       遇到这个题数比较小,我们能很快推出来,但是如果数很大此时该怎么办?又或者是面试官不是让你直接写答案,而是叫你直接撸代码。

    所以我下面就自己根据这个题目的要求去尝试写了一下代码。代码如下:

    function Drink(){
        this.max = 0;
        this.drinkNum = 0;
    }
    Drink.prototype.pay = function(moneny,price,baseNum,drinkNum){
        if(drinkNum){
            if(drinkNum > (baseNum -1)){
                var num = drinkNum/baseNum;
                this.drinkNum = this.drinkNum + Math.floor(num);
                this.pay(moneny,price,baseNum,Math.floor(num) + drinkNum%baseNum);
            }
        }else{
            this.max += Math.floor(moneny/price);
            this.drinkNum = this.max;
            this.pay(moneny,price,baseNum,this.drinkNum);
        }
        
    }
    
    var drinkobj = new Drink();
    drinkobj.pay(20,1,2);
    console.log(drinkobj.drinkNum);
  • 相关阅读:
    1015
    1016
    1014
    1002
    1010
    1006
    动态规划1001
    动态规划1002
    使用EF框架调用带有输出参数(output)的存储过程
    工程地质相关知识
  • 原文地址:https://www.cnblogs.com/justyouadmin/p/10620463.html
Copyright © 2011-2022 走看看