这个程序应该做什么?

时间:2016-05-30 08:48:06

标签: 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); 
}

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);
}