Степенная функция с использованием рекурсии
Я должен написать силовой метод в Java. Он получает два целых числа, и не имеет значения, положительные или отрицательные числа. Это должно иметь сложностьO(logN)
, Также необходимо использовать рекурсию. Мой текущий код получает два числа, но результат, который я продолжаю выводить, равен нулю, и я не могу понять, почему.
import java.util.Scanner;
public class Powers {
public static void main(String[] args) {
float a;
float n;
float res;
Scanner in = new Scanner(System.in);
System.out.print("Enter int a ");
a = in.nextFloat();
System.out.print("Enter int n ");
n = in.nextFloat();
res = powers.pow(a, n);
System.out.print(res);
}
public static float pow(float a, float n) {
float result = 0;
if (n == 0) {
return 1;
} else if (n < 0) {
result = result * pow(a, n + 1);
} else if (n > 0) {
result = result * pow(a, n - 1);
}
return result;
}
}