2020年10月25日 数值的整数次方
程序员文章站
2022-06-25 16:12:04
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0思路一:暴力解法,但是要考虑到指数为0和为负数的情况public class Solution { public double Power(double base, int exponent) { double ret = 1; if(exponent < 0){ base...
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
思路一:
暴力解法,但是要考虑到指数为0和为负数的情况
public class Solution {
public double Power(double base, int exponent) {
double ret = 1;
if(exponent < 0){
base = 1/base;
exponent = -exponent;
}
for(int i = 0;i<exponent;i++){
ret = ret*base;
}
return ret;
}
}
还有一种略复杂的递归法(快速幂)
class Solution {
public:
double q_power(double b, int n) {
if (n == 0) return 1.0;
double ret = q_power(b, n/2);
if (n&1) { // 奇数
return ret * ret * b;
}
else {
return ret * ret;
}
}
double Power(double b, int n) {
if (n < 0) {
b = 1 / b;
n = -n;
}
return q_power(b, n);
}
};
本文地址:https://blog.csdn.net/SamuraiChamploo/article/details/109277754