Возвести в степень не используя циклы и pow()

Дано действительное положительное число a и целое неотрицательное число n. Вычислите an не используя циклы и стандартную функцию pow, а используя рекуррентное соотношение a^n = a * a ^ (n−1).

Решил на Python следующим образом:

def power(a, n):
    temp = str(a)+'*'
    temp *= n
    temp = temp.strip('*')
    try:
        ans = eval(temp)
        return ans
    except:
        return 1
a = float(input())
n = int(input())
print(power(a, n))

Хочу перенести на Java, но похоже на Java нет эквивалента функции eval() на Python. Прошу помочь.


Ответы (1 шт):

Автор решения: Igor

используя рекуррентное соотношение a^n = a * a ^ (n−1).

int power(double a, int n) {
  // assert n >= 0
  return (n == 0)? 1 : (a * power(a, n - 1));
}
→ Ссылка