1

我无法理解这个功能:

function power(base, exponent) {
  var result = 1;
  for (var count = 0; count < exponent; count++)
    result *= base;
  return result;
}

show(power(2, 10));

如果基数和指数在函数内部没有任何关系,怎么可能show(power(2, 10))等于?1024

谢谢

4

5 回答 5

1

给出函数内部基数和指数之间关系的关键部分是:

count < exponent;

这意味着result乘以 的base循环恰好运行exponent次数。这正是指数的定义:来自维基百科

取幂对应于重复乘法;

于 2013-01-19T12:12:39.487 回答
0

这个函数完成了这项工作。对于 0 到 10,将值乘以 2,这就是 pow(2, 10) 的含义。

于 2013-01-19T12:06:04.940 回答
0

我建议使用调试器逐步完成它。 base并且exponent在函数中是相关的:base本质上是乘以自身的exponent时间,因为exponent是循环上的计数器。

于 2013-01-19T12:06:50.180 回答
0

它确实有关系。

底数 = 2
指数 = 10

它会做的是 FOR(COUNT < Exponent),所以它会在函数中循环 10 次。并将结果每次乘以基数。这是2。

所以

  1. 1 * 2 = 2(新结果 = 2)
  2. 2 * 2 = 4(新结果 = 4)
  3. 4 * 2 = 8(新结果 = 8)
  4. 8 * 2 = 16
  5. 16 * 2 = 32
  6. 32 * 2 = 64
  7. 64 * 2 = 128
  8. 128 * 2 = 256
  9. 256 * 2 = 512
  10. 512 * 2 = 1024
于 2013-01-19T12:06:54.613 回答
0

2 的 10 次方是 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 您将变量初始化为 1,这是乘法的单位元素 (1 x N = N),然后计算 A 的 B 次方,

result = 1
FOR 1 TO B
    result = result * A
return result;
于 2013-01-19T12:06:57.483 回答