问题描述
实现函数double Power(double base, int exp),求base的exp次方。不得使用库函数,同时不考虑大数问题。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double x = scanner.nextInt();
int n = scanner.nextInt();
System.out.println(myPow(x, n));
}
public static double myPow(double x, int n) {
if (x == 0) return 0;
long N = n;
double res = 1.0;
if (N < 0) {
x = 1/x;
N = -N;
}
while (N > 0) {
if ((N&1) == 1) res *= x;
x *= x;
N >>= 1;
}
return res;
}
}