Javascript 这个程序应该做什么?
有人能解释一下为什么这个程序不起作用吗Javascript 这个程序应该做什么?,javascript,Javascript,有人能解释一下为什么这个程序不起作用吗 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); } 使用此代码: <body> <p id="x"></p>
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);
}
使用此代码:
<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>
函数powerf(base,exp){
var结果=1;
while(exp--){
结果*=基数;
}
返回结果;
}
document.getElementById(“x”).innerHTML=powerf(2,3);
此程序应返回如下所示的功率值,例如: powerf(2,3)=>8,但当我运行它时,结果是powerf(2,3)=>2 这是因为,当你说
powerf(2,3)
时,它会转到最后一个else
部分,变成
powerf(2,3)
->2*power(2,1)
->2*1
(因为根据您的逻辑,任何提升到power 1的值都是1)
为什么不干脆
function powerf(base, exp)
{
return Math.pow(base, exp);
}
它应该做什么?什么不起作用?这个程序应该像这样返回功率值,例如:powerf(2,3)=>8,但是当我运行它时,结果是powerf(2,3)=>2当exp为1时,你应该返回base,而不是1。exp为0时返回1我尝试使用此函数,结果也是错误的函数powerf(base,exp){if(exp==1){Return base;}if(exp==0){Return 1;}if(exp%2==0){Return powerf(base,exp/2);}否则返回2*powerf(base,exp-2);}因为我必须在不使用Math的情况下解这个程序。pow:)我应该使用recursion@maryamexp是指数值还是负值?在这种情况下,您还需要为所有这些场景设计逻辑。