数值的整数次方
题目描述
| 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 |
思路1
- 指数:(=0、>0、<0),循环实现。
- 当底数(base)是零且指数是负数的时候。
程序(java)
public class Solution {
public double Power(double base, int exponent) {
if (base == 0.0){
return 0.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;
}
}
思路2
程序(java)
public class Solution {
public double Power(double base, int exponent) {
int e = exponent > 0 ? exponent : -exponent;
double result = PowerWithExponent(base,e);
return exponent > 0 ? result : 1 / result;
}
double PowerWithExponent(double base,int exponent) {
if(exponent==0)
return 1.0;
if(exponent==1)
return base;
double result=Power(base,exponent>>1);
result*=result;
if((exponent&0x1)==1)
result*=base;
return result;
}
}
补充
-
三目运算符
数据类型 变量 = 关系运算符 ? 关系满足时的内容 : 关系不满足时的内容;
-
Java中计算程序运行耗时的方法
long startTime=System.currentTimeMillis();
...
long endTime=System.currentTimeMillis();
System.out.println("当前程序耗时:"+(endTime-startTime)+"ms");
long startTime=System.nanoTime();
...
long endTime=System.nanoTime();
System.out.println("当前程序耗时:"+(endTime-startTime)+"ns");
-
浮点型