标签:push 否则 执行 function nbsp 循环 log 赋值 func
var n = 0//当前剩下多少瓶加上喝赢了多少瓶
var x = 5//初始多少瓶
var y = 0//除了喝掉的,剩下多少瓶
var z = 0;//总数
var arr = []//定义一个数组存放值
arr.push(x);//先把最初始瓶数添加到数组
//程序1
var fn = function(s){
y = s -4; //剩下多少瓶
s = y + parseInt(s/4) + parseInt(s/2);//剩下多少瓶加上赢了多少瓶
n = s//赋值给上面的n
arr.push(n);//添加到数组
if(n>=4){//如果剩下多少瓶加上赢了多少瓶大于等于4
fn(n);//继续执行程序1
}else{//否则
fn1(n)//执行程序2
}
}
//程序2
var fn1 = function(s){
y = s -2;//剩下多少瓶
s = y + parseInt(s/2);//剩下多少瓶加上赢了多少瓶
n = s//赋值给上面的n
arr.push(n);//添加到数组
if(n>=2){//如果剩下多少瓶加上赢了多少瓶大于等于2
fn1(n);//继续执行程序2
}
}
fn(x)//执行程序1
for(var i=0;i<arr.length;i++){
z += arr[i]//循环数组把所有的数加起来
}
console.log(z);//得到总数并打印
逻辑:
1,先喝4瓶,剩下1瓶,加上2瓶和1瓶,就剩下4
2,再喝4瓶,剩下0瓶,加上2瓶和1瓶,就剩下3瓶
3,再喝2瓶,剩下1瓶,加上1瓶,就剩下2瓶
4,再喝2瓶,剩下0瓶,加上1瓶,就剩下1瓶
5,把数加起来就是,5+4+3+2+1 = 15
javascript计算啤酒2元一瓶,4个盖换一瓶,2个瓶换一瓶,10元钱最多喝多少瓶
标签:push 否则 执行 function nbsp 循环 log 赋值 func
原文地址:http://www.cnblogs.com/jeff1990/p/7518216.html