本题是力扣网第50题。

实现 pow(xn) ,即计算 x 的 n 次幂函数。

采用递归和非递归思路python实现。

class Solution:
#递归思路
def myPow_recursion(self,x,n):
if n == 0: #递归终止条件,n==0返回1
return 1
if n < 0: #n小于0,就返回其倒数,-n和其递归结构一致
return 1 / self.myPow_recursion(x,-n)
if n & 1: #判断是奇数,则结果为x*(x的n-1次方)
return x * self.myPow_recursion(x,n-1)
else: #判断是偶数,则结果是x的平方*x的n/2次方
return self.myPow_recursion(x*x,n/2)
#非递归思路
def myPow_loop(self,x,n):
if n < 0: #如果n小于0,则为n变为正数,值为其倒数
n = -n
x = 1 / x
pow = 1 #结果值初始为1
while n: #遍历循环,是n一直除以2
if n & 1: #奇数时候
pow *= x #pow是x
x *= x #x乘以x
n >>= 1 #n连续性的除以2
return pow
if __name__ == '__main__':
solution = Solution()
#(2,-1) (2,0) (2,2) (2,5)
x,n = 2,-2
result = solution.myPow_recursion(x,n)
print(result)
result = solution.myPow_loop(x,n)
print(result)

最新文章

  1. android JNI 调用NDK方法
  2. oracle--子查询--bai
  3. Firebird数据库系统的开发团队
  4. 中控考勤仪IFace302多线程操作时无法订阅事件
  5. kickstart note
  6. Spring的LoadTimeWeaver(代码织入)
  7. Hangover[POJ1003]
  8. 在MyEclipse上搭建web服务器
  9. Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)
  10. MYSQL event_scheduler
  11. Nutch的日志系统
  12. 创建Activity
  13. 对&quot;一维最大子数组和&quot;问题的思考
  14. [Bayesian] “我是bayesian我怕谁”系列 - Naive Bayes+prior
  15. 团队作业第六次—团队Github实战训练
  16. springboot之JdbcTemplate
  17. js解密
  18. vue容易混淆的点小记
  19. 【代码笔记】iOS-将地址解析成经纬度
  20. vue-cli 3.0 图片路径问题(何时使用 public 文件夹)

热门文章

  1. string.join用法
  2. PLSQL登录失败出现空白错误提示框的问题
  3. 2019年北航OO第4单元(UML)总结
  4. 关于阿里 iconfont 的使用步骤
  5. Android多种方式实现相机圆形预览
  6. 【HICP Gauss】数据库 升级迁移维护-2
  7. python抽象基类
  8. Centos7.3云服务器上安装Nginx、MySQL、JDK、Tomcat环境
  9. Django - 读取Excel文件
  10. 51nod 2497 数三角形