var cap = 5; var bottle = 5; var num = 5; while(cap>=4||bottle>=2){ num=num+Math.floor(cap/4)+Math.floor(bottle/2); var t = cap; var s = bottle; cap = t- (Math.floor(t/4))*4 + Math.floor(t/4)+Math.floor(s/2); bottle = s - (Math.floor(bottle/2))*2 + Math.floor(t/4)+Math.floor(s /2); }; num 15
4个瓶盖换1瓶,一个瓶盖值 5毛钱,同样一个空瓶值 1块钱。
所以一瓶啤酒只值 5 毛钱。
所以,如果允许先借几瓶,喝完再还瓶盖和瓶子的话,十块钱可以喝 20 瓶(20恰好是4和2的整倍数)。
感谢大家的支持,更新一个方程吧,假设可以借 x 瓶,则有
大概就是这样子吧.公交车上码的,错了不要介意~
十块钱可以买5瓶酒,5瓶酒有5个瓶盖,5个空瓶;换瓶酒后3瓶酒,1个瓶盖1个空瓶;喝完有4个空瓶4个瓶盖能换3瓶啤酒;3瓶喝完有3个瓶盖3个空瓶能换1瓶啤酒声3个瓶盖1个空瓶;喝完4个瓶盖2个空瓶换2瓶啤酒;喝完剩2个空瓶两个瓶盖能换1瓶啤酒剩两个瓶盖;
那么这个实现的话主要是看瓶盖数和空瓶数来实现的,
var cap = 5;
var bottle = 5;
var num = 5;
while(cap>=4||bottle>=2){
num=num+Math.floor(cap/4)+Math.floor(bottle/2);
var t = cap;
var s = bottle;
cap = t- (Math.floor(t/4))*4 + Math.floor(t/4)+Math.floor(s/2);
bottle = s - (Math.floor(bottle/2))*2 + Math.floor(t/4)+Math.floor(s /2);
};
num
15
}没思路了,谁给改改//修改代码如下,输出是15