84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
啤酒2元一瓶,四个瓶盖可换一瓶啤酒,2个空瓶也可换一瓶啤酒,10元最多可以喝几瓶,要用js实现
ringa_lee
function computed(money) { var num = parseFloat(money) / 2; var pingzi = num, gaizi = num; var total = num; reComputed(); function reComputed() { if (pingzi < 2 && gaizi < 4) { return; } if (pingzi >= 2) { var beishu = Math.floor(pingzi / 2); pingzi = pingzi - beishu * 2 + Math.floor(pingzi / 2); gaizi = gaizi + beishu; total = total + beishu; } else { var beishu_1 = Math.floor(gaizi / 4); gaizi = gaizi - beishu_1 * 4 + Math.floor(gaizi / 4); pingzi = pingzi + beishu_1; total = total + beishu_1; } reComputed(); } return total; }
输入金钱10,输出15,所有10元最多应该可以喝15瓶
有些东西用计算机要简单一些,但不是所有的计算用计算机都要简单一点!
<!DOCTYPE html> <html> <head> <title>测试</title> <meta charset="utf-8"> </head> <body> <button id="testBtn">test</button> <p style="width:300px;"> <p>啤酒2元一瓶,四个瓶盖可换一瓶啤酒,2个空瓶也可换一瓶啤酒,10元最多可以喝几瓶,要用js实现.下面输入所花费用</p> <input type="text" name="fee" id="allfee"> <button id="openP">计算</button> </p> <script type="text/javascript"> window.onload = function() { var allFee; //总费用 var count = 0; //当前已喝啤酒的数量 var pingzi = 0; //当前的瓶子数 var gaizi = 0; //当前的盖子数量 var calculateCount = document.getElementById("openP"); //点击开始计算 calculateCount.onclick = function(){ allFee = parseInt(document.getElementById('allfee').value) step1(allFee); } //步骤1. 计算用当前费用,所能喝到的啤酒数量 function step1(fee){ let curpi1 = parseInt(fee/2); count += curpi1; pingzi += curpi1; gaizi += curpi1; step2(); } //步骤2. 计算用瓶盖兑换啤酒喝的数量 function step2(){ if(gaizi/4 < 1 && pingzi/2 < 1){ alert(count); return false; }else{ let curpi2 = parseInt(gaizi/4); count += curpi2; pingzi += curpi2; gaizi = gaizi%4 + curpi2; step3(); } } //步骤3. 计算用空瓶子兑换啤酒喝的数量 function step3(){ if(gaizi/4 < 1 && pingzi/2 < 1){ alert(count); return false; }else{ let curpi3 = parseInt(pingzi/2); count += curpi3; gaizi += curpi3; pingzi = pingzi%2 + curpi3; step2(); } } } </script> </body> </html>
function howMany(price, buttle, cap){/*兑换所需单价 瓶子 瓶盖*/ return function get(money, sum = 0, b = 0, pg = 0){ var n = money ? (money / price) << 1 >> 1 : ((b / buttle) << 1 >> 1) + ((pg / cap) << 1 >> 1); return !n ? sum : get(0, sum + n, b % buttle + n, pg % cap + n); } } var count = howMany(2, 2, 4); count(10)
怀念pg作为某种货币的时光
def beer(total, cover, bottle):
if cover < 4 and bottle < 2: return total if cover >= 4: total, bottle, cover = total+cover/4, bottle+cover/4, cover%4+cover/4 if bottle >= 2: total, cover, bottle = total+bottle/2, cover+bottle/2, bottle%2+bottle/2 return beer(total, cover, bottle)
print beer(10/2, 10/2, 10/2)
感觉就得用递归啊
var fn=function(x,y,z,m){//x是完整瓶,y是空瓶,z是空盖,m是能喝的瓶数 return x==0&&y<2&&z<4?m:fn(parseInt(y/2)+parseInt(z/4),y%2+x,z%4+x,m+=x)
} var num=fn(10/2,0,0,0)
输入金钱10,输出15,所有10元最多应该可以喝15瓶
有些东西用计算机要简单一些,但不是所有的计算用计算机都要简单一点!
怀念pg作为某种货币的时光
def beer(total, cover, bottle):
print beer(10/2, 10/2, 10/2)
感觉就得用递归啊
}
var num=fn(10/2,0,0,0)