LeetCode日常-简单-实现pow(x, n)
本文最后更新于:2020年9月27日 晚上
题目
实现 pow(x, n) ,即计算 x 的 n 次幂函数。
1 |
|
1 |
|
1 |
|
自解
简单递归,一次次乘,得到结果。
官方解法-快速幂算法
思路
假设我们已经得到了 $$x ^ {n / 2}$$ 的结果,现在想要计算 $$x^n$$ 的结果
设 A 是 $$x^{n/2}$$ 的结果,我们可以分别根据 n 的奇偶来讨论 $$x ^ n$$
- 如果 n 是偶数,我们可以使用公式 $$(x^n)^2 = x^{2n}$$ 得到 $$x^n = A^2$$
- 如果 n 是奇数,那么 $$A^2 = x^{n-1}$$
直观地说,我们需要将另一个 x 和结果相乘,所以 $$x^n = A * A * x$$ 。这种方法可以很容易地用递归实现
我们称这个方法为“快速幂(Fast Power)”,因为我们最多只需要 O(log(n)) 次计算就可以得到 $$ x^n $$
代码
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!