数值的整数次方(剑指offer_16)
Posted ziytong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数值的整数次方(剑指offer_16)相关的知识,希望对你有一定的参考价值。
题目描述
给定一个double类型的浮点数base和int类型的整数exponent, 求base 的 exponent次方。
解题思路
下面的讨论x代表base,n代表exponent。
因为 (x*x)n/2 可以通过递归求解,并且每次递归n都减小一半,因此整个算法的时间复杂度为 O(logN)。
public double Power(double base, int exponent) { if(exponent == 0) return 1; if(exponent == 1) return base; boolean isNegative = false; if(exponent < 0) { exponent = -exponent; isNegative = true; } double pow = Power(base*base, exponent / 2); if(exponent % 2 != 0) pow = pow * base; return isNegative?1/pow:pow; }
以上是关于数值的整数次方(剑指offer_16)的主要内容,如果未能解决你的问题,请参考以下文章