博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指 Offer 16. 数值的整数次方
阅读量:4101 次
发布时间:2019-05-25

本文共 613 字,大约阅读时间需要 2 分钟。

题目

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。

示例1:

输入:x = 2.00000, n = 10

输出:1024.00000

示例2:

输入:x = 2.10000, n = 3

输出:9.26100

思路:

1.将幂次n转换为二进制
2.当遇到是小数形式的时候,先进行逆置转换
3.判断n是奇数还是偶数,即二进制最后一位是否为1,如果是,则xres, 否则只需要x=x,然后n右移
4.返回res

因为这里直接累乘,会爆,所以考虑累乘的话,转换为2分累乘的方式,因为以二进制的形式计算可以提速。

如3^5==》那么明显n=5 为奇数,那么
3^5 = 3* 3 ^(2*5//2)
然后3 * 3 * 3 * 3 * 3就可以转化成
循环x=x^2的操作,每次把幂次降低一半,然后判断奇偶性
3 ^ 5==>3^5 *1===》9 ^2 * (1 * 3)===>81^1 * (1 * 3) ==> 6540^0 * (1 * 3 * 81)

python

class Solution(object):	def myPow(self,x,n):		if x==0: res=0		res=1		if n<0:x,n=1/x,-n		while(n):			if n&1:				res*=x			x*=x			n>>=1		return res

转载地址:http://gnwsi.baihongyu.com/

你可能感兴趣的文章
Spring Boot构建简单的微博应用
查看>>
Spring处理表单提交
查看>>
Spring MVC异常处理
查看>>
Leetcode 1180. Count Substrings with Only One Distinct Letter [Python]
查看>>
PHP 7 的五大新特性
查看>>
php实现socket(转)
查看>>
PHP底层的运行机制与原理
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
PHP7新特性 What will be in PHP 7/PHPNG
查看>>
比较strtr, str_replace和preg_replace三个函数的效率
查看>>
ubuntu 下编译PHP5.5.7问题:configure: error: freetype.h not found.
查看>>
PHP编译configure时常见错误 debian centos
查看>>
configure: error: Please reinstall the BZip2 distribution
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
【增强学习在无人驾驶中的应用】
查看>>
《python+opencv实践》四、图像特征提取与描述——29理解图像特征
查看>>
《python+opencv实践》四、图像特征提取与描述——31 Shi-Tomasi 角点检测& 适合于跟踪的图像特征
查看>>
OpenCV meanshift目标跟踪总结
查看>>