剑指Offer-数值的整数次方
程序员文章站
2022-06-17 17:05:45
...
数值的整数次方
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
分析
代码
public class Main {
public static void main(String[] args) {
// write your code here
System.out.println(Power(2,7));
}
public static double Power(double base, int exponent) {
int srcExponent=exponent;
if (base == 0){
return 0;
}else if (exponent <0){
exponent = -exponent;
}
// 如果为负,用一除
if (srcExponent < 0){
return 1/getPower(base,exponent);
}
return getPower(base,exponent);
}
public static double getPower(double base, int exponent) {
if (exponent == 0){
return 1;
}
if (exponent ==1){
return base;
}
// 用移位方式除二操作,7/2=3 3/2=1
double result=Power(base,exponent>>1);
result *=result; //2*2 (2*2*2)^2=2^6
// 指数于1相与,如果为奇数的话,则再乘一次
if ((exponent & 1) ==1){
result *= base; //2*2*2 ((2*2*2)^2)*2=2^7
}
return result;
}
}
推荐阅读
-
剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
-
剑指offer31:整数中1出现的次数(从1到n整数中1出现的次数)
-
剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
-
剑指offer JZ31 整数中1出现的次数 Python 解
-
剑指Offer16_数值的整数次方(快速幂及拓展)
-
[PHP] 算法-数值的整数次方的PHP实现
-
20200329-剑指offer-面试题48. 最长不含重复字符的子字符串(滑动窗口)
-
剑指offer-连续子数组的最大和
-
剑指offer-连续子数组的最大和
-
剑指Offer-连续子数组的最大和