网站推广软文是什么,制作营销网站模板下载,企业网站制作排名,巴州区建设局网站文章目录 题目描述思路分析完整代码 题目描述 实现 pow(x, n) #xff0c;即计算 x 的 n 次幂函数#xff08;即#xff0c;xn#xff09;。不得使用库函数#xff0c;同时不需要考虑大数问题。 示例 1#xff1a; 输入#xff1a;x 2.00000, n 10 输出#xff1a;10… 文章目录 题目描述思路分析完整代码 题目描述 实现 pow(x, n) 即计算 x 的 n 次幂函数即xn。不得使用库函数同时不需要考虑大数问题。 示例 1 输入x 2.00000, n 10 输出1024.00000 示例 2 输入x 2.10000, n 3 输出9.26100 思路分析
暴力会超时标的中等难度所以肯定不是直接for的。
快速幂方法
再看一遍题目求x的n次幂。
直接记结论。
1.将n变为二进制然后取反结果记为temp 2.遍历temp的每一位数字为1的地方进入循环。 3.循环中式子如下 既 每一项是x (2i)这里的‘i’就是temp为‘1’的下标。
4.将每一项的结果 相乘起来就行了。
5.对于输入的n为负数的情况吧x变为倒数然后n变为正数就可以继续算了。
完整代码
class Solution:def myPow(self, x: float, n: int) - float:temp bin(abs(n))[2:][::-1]print(temp)if n0 :x 1/xn abs(n)res 1for i in range(len(temp)):if temp[i] 1:res * x **(2**i)return res