没有Math.pow()JavaScript的指数

时间:2015-11-13 05:42:37

标签: javascript loops math exponentiation

我需要编写一个程序,它接受两个整数基数和指数,并在不使用Math.Pow()的情况下计算指数。我已经使用Math.pow()方法创建了代码,我无法弄清楚如何在没有它的情况下使其工作。我试过基地^ exp,但它没有给我正确的答案。提前谢谢!

/ *编写一个名为intPow的JavaScript函数,它从两个文本字段中读取两个名为base和exp的数字。假设第二个数字将始终是一个大于或等于1的整数。您的函数不应使用任何内置的Math函数,如Math.pow。你的函数应该使用一个循环来计算baseexp的值,这意味着base被提升到exp的幂。您的函数必须将baseexp的结果输出到div。提示:将您的函数写入计算1乘以基本exp时间。 * /

<!DOCTYPE HTML>
<html lang="en-us">

<head>
<meta charset="utf-8">
<title>Integer Power</title>
<script type="text/javascript">
    /* Write a JavaScript function named intPow that reads two numbers named base and exp from two text fields. Assume that the second number will always be an integer greater than or equal to 1. Your function should not use any of the built in Math functions such as Math.pow. Your function should use a loop to compute the value of baseexp meaning base raised to the power of exp. Your function must output the result of baseexp to a div. Hint: write your function to compute 1 multiplied by base exp times. */
    function intPow() {
        var base = parseFloat(document.getElementById("baseBox").value);
        var exp = parseFloat(document.getElementById("expBox").value);
        var output = "";
        var i = 0;
        for (i = 1; i <= exp; i++) {
            output = Math.pow(base, exp);
        }
        document.getElementById("outputDiv").innerHTML = output;
    }
</script>
</head>

<body>
<h1>Find the power of <i>Base</i> by entering an integer in the <i>base</i> box, and an integer in the <i>exponent</i> box.</h1> Base:
<input type="text" id="baseBox" size="15"> Exponents:
<input type="text" id="expBox" size="15">
<button type="button" onclick="intPow()">Compute Exponents</button>
<div id="outputDiv"></div>
</body>

</html>`

3 个答案:

答案 0 :(得分:3)

对于任何想起未来的人,比如我刚才,这是一个可靠的解决方案:

function computePower(num, exponent) {
      var result = 1;
      for (i = 0; i < exponent; i++) {
      result *= num;
      }
      return result;
  } 

给定一个数字和一个指数,“computePower”返回给定的数字,提升到给定的指数。

@ user5500799,

output = (1 * base ) * exp;

不起作用,因为你没有将基数提高到指数,只是乘以它。从乘法1开始是很好的:在我的代码中,这可以确保,例如,0到0的幂是1(0的幂是1,这是定义的东西)

答案 1 :(得分:0)

我能够通过changint输出来解决这个问题:

output =(1 * base)* exp;

答案 2 :(得分:0)

在ES2016中,您可以使用exponentiation operator

2 ** 8 // 256