var p = 5;//10元钱第一次购买酒数
var pg = p * 1;//瓶盖数
var kp = p * 1;//空瓶数
var hg = 4;//瓶盖换购基数,4个瓶盖换购一瓶酒
var hp = 2;//空瓶换购基数,2个空瓶换购一瓶酒
console.log('拥有酒:',p,'瓶;换购规则:',4,'个瓶盖换',1,'瓶酒,',2,'个空瓶换','瓶酒。');
fun();
function fun() {
var tmpg = parseInt(pg / hg);
var tmpp = parseInt(kp / hp);
if (tmpg > 0) {
pg = pg - (tmpg * hg);
pg = pg + tmpg;
kp = kp + tmpg;
p = p + tmpg;
}
if (tmpp > 0) {
kp = kp - (tmpp * hp);
kp = kp + tmpp;
pg = pg + tmpp;
p = p + tmpp;
}
if (tmpg || tmpp) {
console.log('用',tmpg * hg,'个瓶盖和',tmpp * hp,'个空瓶共换酒',tmpg + tmpp,'瓶。','换购后将之前的',p - (tmpg + tmpp),'瓶加上换购后的','瓶,总酒数:',p);
fun();
} else {
console.log('已无法再进行换购。');
return false;
}
}</code></pre>
运行结果
拥有酒: 5 瓶;换购规则: 4 个瓶盖换 1 瓶酒, 2 个空瓶换 1 瓶酒。
用 4 个瓶盖和 4 个空瓶共换酒 3 瓶。 换购后将之前的 5 瓶加上换购后的 3 瓶,总酒数: 8
用 4 个瓶盖和 4 个空瓶共换酒 3 瓶。 换购后将之前的 8 瓶加上换购后的 3 瓶,总酒数: 11
用 0 个瓶盖和 2 个空瓶共换酒 1 瓶。 换购后将之前的 11 瓶加上换购后的 1 瓶,总酒数: 12
用 4 个瓶盖和 2 个空瓶共换酒 2 瓶。 换购后将之前的 12 瓶加上换购后的 2 瓶,总酒数: 14
用 0 个瓶盖和 2 个空瓶共换酒 1 瓶。 换购后将之前的 14 瓶加上换购后的 1 瓶,总酒数: 15
已无法再进行换购。