//求幂运算的高效率算法
public class Pow {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input a num:");
double x = scanner.nextDouble();
System.out.println("Please input a num:");
int n = scanner.nextInt();
System.out.println("The result is:" + pow(x, n));
scanner.close();
}
public static double pow(double x, int n) {
if (n == 0) {
return 1;
}
if (isEven(n)) {
return pow(x * x, n / 2);
} else {
return pow(x * x, n / 2) * x;
}
}
public static boolean isEven(int n) {
return n % 2 == 0;
}
}
public class Pow {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input a num:");
double x = scanner.nextDouble();
System.out.println("Please input a num:");
int n = scanner.nextInt();
System.out.println("The result is:" + pow(x, n));
scanner.close();
}
public static double pow(double x, int n) {
if (n == 0) {
return 1;
}
if (isEven(n)) {
return pow(x * x, n / 2);
} else {
return pow(x * x, n / 2) * x;
}
}
public static boolean isEven(int n) {
return n % 2 == 0;
}
}