当前位置: 面试刷题>> 的幂 (经典算法题500道)


### 题目描述补充 **题目:求一个数的幂** 给定两个整数 `base`(底数)和 `exponent`(指数),请计算并返回 `base` 的 `exponent` 次幂(即 `base^exponent`)。你需要考虑指数为负数的情况,如果指数为负数,则返回其倒数的绝对值次幂的倒数。另外,指数超出整型范围时,应当考虑其可能的表示形式(例如,Python 中的 `**` 运算符可以直接处理大数幂运算,而无需显式转换)。 ### 示例 1. 输入:`base = 2, exponent = 3` 输出:`8` 2. 输入:`base = 2, exponent = -2` 输出:`0.25`,因为 $2^{-2} = \frac{1}{2^2} = 0.25$ 3. 输入:`base = 0, exponent = 0` 输出:`1`,按照数学定义,任何数的0次幂都是1(除了0的0次幂在数学上是未定义的,但在这里我们可以按1处理)。 ### PHP 示例代码 ```php function myPow($base, $exponent) { if ($exponent == 0) return 1; if ($exponent < 0) { $base = 1 / $base; $exponent = -$exponent; } $result = 1; while ($exponent > 0) { if ($exponent % 2 == 1) { $result *= $base; } $base *= $base; $exponent = intdiv($exponent, 2); } return $result; } // 测试 echo myPow(2, 3); // 输出 8 echo myPow(2, -2); // 输出 0.25 echo myPow(0, 0); // 输出 1 ``` ### Python 示例代码 ```python def myPow(base, exponent): if exponent == 0: return 1 if exponent < 0: base = 1 / base exponent = -exponent result = 1 while exponent > 0: if exponent % 2 == 1: result *= base base *= base exponent //= 2 return result # 测试 print(myPow(2, 3)) # 输出 8 print(myPow(2, -2)) # 输出 0.25 print(myPow(0, 0)) # 输出 1 ``` ### JavaScript 示例代码 ```javascript function myPow(base, exponent) { if (exponent === 0) return 1; if (exponent < 0) { base = 1 / base; exponent = -exponent; } let result = 1; while (exponent > 0) { if (exponent % 2 === 1) { result *= base; } base *= base; exponent = Math.floor(exponent / 2); } return result; } // 测试 console.log(myPow(2, 3)); // 输出 8 console.log(myPow(2, -2)); // 输出 0.25 console.log(myPow(0, 0)); // 输出 1 ``` **码小课网站中有更多相关内容分享给大家学习**,包含更多算法、数据结构及编程语言的进阶知识,助力你在编程道路上更进一步。
推荐面试题