@

实现 pow(x, n),即计算 x 的 n 次幂函数。其中n为整数。

链接: pow函数的实现——leetcode.

解法1:暴力法

不是常规意义上的暴力,过程中通过动态调整底数的大小来加快求解。代码如下:

def my_pow(number, n):
judge = True
if n < 0:
n = -n
judge = False
if n == 0:
return 1
result = 1
count = 1
temp = number
while n > 0:
if n >= count:
result *= temp
temp = temp * number
n -= count
count += 1
else:
temp /= number
count -= 1
return result if judge else 1/judge

解法2:根据奇偶幂分类(递归法,迭代法,位运算法)

如果n为偶数,则pow(x,n) = pow(x^2, n/2);

如果n为奇数,则pow(x,n) = x*pow(x^2, (n-1)/2)。

class MyPow:
def my_pow(self, number, n):
if n < 0:
n = -n
return 1/self.help_(number, n)
return self.help_(number, n) def help_(self, number, n):
if n == 0:
return 1
if n%2 == 0:
return self.help_(number*number, n//2)
return self.help_(number*number, (n-1)//2)*number

迭代代码如下:

class MyPow:
def my_pow(self, number, n):
judge = True
if n < 0:
n = -n
judge = False
result = 1
while n > 0:
if n%2 == 0:
number *= number
n //= 2
result *= number
n -= 1
return result if judge else 1/result

python位运算符简介.

其实跟上面的方法类似,只是通过位运算符判断奇偶性并且进行除以2的操作(移位操作)。代码如下:

class Solution:
def myPow(self, x: float, n: int) -> float:
judge = True
if n < 0:
n = -n
judge = False
final = 1
while n>0:
if n & 1: #代表是奇数
final *= x
x *= x
n >>= 1 # 右移一位
return final if judge else 1/final

一个数number的n次幂 python的pow函数的更多相关文章

  1. python实现pow函数(求n次幂,求n次方)

    目录 类型一:求n次幂 类型二:求n开方 类型一:求n次幂 实现 pow(x, n),即计算 x 的 n 次幂函数.其中n为整数.pow函数的实现--leetcode 解法1:暴力法 不是常规意义上的 ...

  2. 【LeetCode】137. Single Number II 解题报告(Python)

    [LeetCode]137. Single Number II 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/single- ...

  3. python内置函数详细介绍

    知识内容: 1.python内置函数简介 2.python内置函数详细介绍 一.python内置函数简介 python中有很多内置函数,实现了一些基本功能,内置函数的官方介绍文档:    https: ...

  4. Python 中的函数

    学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心.我们使用函数可以增加程序的可读性.自定义函数时使用关键字def 函数由多条语句组成.在定义函数 ...

  5. Python内置函数和内置常量

    Python内置函数 1.abs(x) 返回一个数的绝对值.实参可以是整数或浮点数.如果实参是一个复数,返回它的模. 2.all(iterable) 如果 iterable 的所有元素为真(或迭代器为 ...

  6. python内置函数 1

    常用函数 abs(x) abs()返回一个数字的绝对值.如果给出复数,返回值就是该复数的模. >>>print abs(-100) 100 >>>print abs ...

  7. 【Python之路】第四篇--Python基础之函数

    三元运算 三元运算(三目运算),是对简单的条件语句的缩写 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2” ...

  8. 第二十六节,Python内置函数

    Python3.0内置函数 abs() 取数字的绝对值,也就是无论是正数还是负数取它的绝对值格式:abs(目标变量)返回:数字类型 #!/usr/bin/env python # -*- coding ...

  9. 【转】python 内置函数总结(大部分)

    [转]python 内置函数总结(大部分) python 内置函数大讲堂 python全栈开发,内置函数 1. 内置函数 python的内置函数截止到python版本3.6.2,现在python一共为 ...

随机推荐

  1. Sentry实时应用错误跟踪系统在Kubernetes中私有化部署

    应用错误跟踪系统:对软件系统运行过程中产生的错误日志进行收集从而实现监控告警. 虽然软件错误❌是不可避免的,但是可以降低错误数. 提高对错误的治理能力能让错误带来的损失降到最低 ​

  2. Spring Cloud 系列之 Gateway 服务网关(一)

    什么是 Spring Cloud Gateway Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由 ...

  3. BUG 测试计划

       性能追求 目前状况 测试标准 APP平稳运行,无crush现象   快速下拉翻页时,崩溃退出     要求多人使用,均流畅无异常退出方可               页面的放大缩小不会造成页面显 ...

  4. 多窗体及窗体之间传值 以及listview的使用

    三中打开窗口窗体状态: 1   messagebox.show 类型  特点: 从窗口form 1里打开另一个窗体form2,form2不关闭的情况下form1 不能操作:代码如下: private ...

  5. 2020新Asp.NET敏捷快速开发框架7.0.5旗舰版源码asp.net mvc框架,工具类CRM,工作流

    演示地址: http://frame3.diytassel.com  用户名:system  密码:0000    需要的联系QQ:22539134 一.新添加了 1.多语言功能: 2.代码生成器模版 ...

  6. python之pymysql库连接mysql实现增、删、改、查

    安装第三方库pymysql 命令行cmd下通过pip install pymysql进行安装,安装完成后自行pip list可查看对应的版本信息 建立连接 1 #导入pymysql库 2 import ...

  7. Springboot:员工管理之国际化(十(3))

    1:IDEA编码设置UTF-8 2:创建国际化文件 i18n\login.properties #默认语言 i18n\login_en_US.properties #英文语言 i18n\login_z ...

  8. 01、Hibernate安装配置

    1.查看你的Eclipse的版本:Help | About Eclipse       Version: 2018-12 (4.10.0) 2.HibernateTools的下载地址为:http:// ...

  9. ASP.NET Core 与 ASPOSE.Words for .NET

    Aspose.Total是Aspose公司旗下的最全的一套office文档管理方案,它提供的原生API可以对Word.Excel.PDF.Powerpoint.Outlook.CAD.图片.3D.ZI ...

  10. 5、flink常见函数使用及自定义转换函数

    代码地址:https://gitee.com/nltxwz_xxd/abc_bigdata 一.flink编程方法 获取执行环境(execution environment) 加载/创建初始数据集 对 ...