题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
解答:为啥先想到的是递归,真是摆脱不了了
1.递归
public class Q_12 {
public double Power(double base, int exponent) {
if(exponent<0){
return 1/(Power1(base,exponent*-1));
}else if(exponent==0){
return 1;
}else{
return Power1(base,exponent);
}
}
public double Power1(double base, int exponent) {
if (base==0) {
return (double) 0;
}
if(exponent==1){
return base;
}
if(exponent>1){
return base*Power1(base, exponent-1);
}
return 0;
}}
2.递推
链接:https://www.nowcoder.com/questionTerminal/1a834e5e3e1a4b7ba251417554e07c00?answerType=1&f=discussion
public class Solution {
public double Power(double base, int exponent) {
if (base == 0.0){
return 0.0;
}
// 前置结果设为1.0,即当exponent=0 的时候,就是这个结果
double result = 1.0d;
// 获取指数的绝对值
int e = exponent > 0 ? exponent : -exponent;
// 根据指数大小,循环累乘
for(int i = 1 ; i <= e; i ++){
result *= base;
}
// 根据指数正负,返回结果
return exponent > 0 ? result : 1 / result; }
}

京公网安备 11010502036488号