一个递归算法题目

今天有个朋友问我一个小学生的奥数题,酒1元钱1瓶,2个空瓶子可以换一瓶酒,问20块钱可以喝多少瓶酒。我OUT了,我被鄙视了。

我不会,但是谁让我是写代码的呢,写了个小程序用来鄙视他。告诉他,我不仅知道20块能买多少酒,你就是20000块我也能算出来。

var allWine = 0;  // 20块钱可以买20瓶酒
var otherBottle = 0;
//递归函数,瓶换酒
function bottleExchangeWine(bottle)
{
    if(bottle % 2==1){ //保证瓶子的数量为偶数
        if(otherBottle>=1){//若不为偶数,且之前有剩余的空瓶子
        bottle += 1;//加一个瓶子
        otherBottle -= 1;
        }else{
            bottle -= 1
            otherBottle +=1;
        }
    }
    var newWine =bottle/2;
    allWine +=newWine ;
    if(newWine>=1)
    {
        bottleExchangeWine(newWine);
    }
    return;
   
}
function getWine(){
    otherBottle = 0;
    allWine = parseInt(document.getElementById("txtMoney").value);
    bottleExchangeWine(allWine);
    alert("共有:"+allWine+"瓶酒,共有:"+otherBottle+"个空瓶子还没有换!");
}

 查看demo




[本日志由 rainweb 于 2010-01-21 04:03 PM 编辑]
文章来自: 原文地址
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.