任何人都可以向我解释为什么这个程序不起作用?
function powerf(base,exp){
if(exp==1)
return 1;
if(exp % 2 == 0)
return powerf(base,exp/2);
else
return 2*powerf(base,exp-2);
}
答案 0 :(得分:0)
使用此代码:
<body>
<p id="x"></p>
<script>
function powerf(base, exp) {
var result = 1;
while(exp--) {
result *= base;
}
return result;
}
document.getElementById("x").innerHTML = powerf(2,3);
</script>
</body>
答案 1 :(得分:0)
这个程序应该返回像这样的权力值,例如: powerf(2,3)==&gt; 8但是当我运行它时,结果是powerf(2,3)==&gt; 2
这是因为,当您说powerf(2,3)
时,它会转到上一个else
部分并且变为
powerf(2,3)
- &gt; 2*power(2,1)
- &gt; 2*1
(因为根据你的逻辑,任何提升到1的能力都是1)
为什么不简单地拥有
function powerf(base, exp)
{
return Math.pow(base, exp);
}