本文共 1571 字,大约阅读时间需要 5 分钟。
【题目描述】
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。
【解题思路】
【算法流程】
class Solution: def myPow(self, x: float, n: int) -> float: if x == 0: return 0 res = 1 if n < 0: x, n = 1 / x, -n while n: if n & 1: res *= x x *= x n >>= 1 return res'''作者:jyd链接:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/solution/mian-shi-ti-16-shu-zhi-de-zheng-shu-ci-fang-kuai-s/'''
复杂度分析:
【打印版】
class Solution: def myPow(self, x: float, n: int) -> float: if x == 0: return 0 res = 1 # res保留最终结果 if n < 0: x, n = 1 / x, -n while n: print("x =",x,end='\t') print("n =",n) print('n&1=',n & 1,end='\t') if n & 1: # 不为0 就是奇数 res *= x # res先保留多出的一项 print("n是奇数") print("res =",res) else: print("n是偶数") x *= x n >>= 1 print() return ress = Solution()print(s.myPow(3,5))
转载地址:http://rfjii.baihongyu.com/