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);
  • 相关阅读:
    从O(n^3) 到 O(n)求最大连续和
    冲刺博客NO.6
    冲刺博客NO.5
    冲刺博客NO.4
    冲刺博客NO.3
    冲刺博客NO.2
    冲刺博客NO.1
    结对开发:四则运算(网页版)
    课堂作业3
    软件工程概论02~ 四则运算
  • 原文地址:https://www.cnblogs.com/justyouadmin/p/10620463.html
Copyright © 2011-2022 走看看