Recur3. Описать рекурсивную функцию PowerN(X, N) вещественного типа, находящую значение N-й степени числа X по формулам:
\(X^0 = 1,\)
\(X^N = (X^{N/2})^2\) при четных N > 0,
\(X^N = X \cdot X^{N-1}\) при нечетных N > 0,
\(X^N = 1/X^{-N}\) при N < 0
(\(X \neq 0\) — вещественное число, N — целое; в формуле для четных N должна использоваться операция целочисленного деления). С помощью этой функции найти значения \(X^N\) для данного X при пяти данных значениях N.
Решение на Python 3:
import random
def PowerN(X,N):
if N < 0:
y = 1.0 / PowerN(X,-N)
return y
elif N == 0:
return 1
r = N % 2
if r == 0:
y = PowerN(X, N/2)
return y*y
else:
y = PowerN(X, N-1)
return X*y
for i in range(5):
X = random.randrange(1,10)
#X = round(random.uniform(-5,5),1)
N = random.randrange(-10,10)
Y = PowerN(X,N)
print("#",i+1)
print("X = ",X)
print("N = ",N)
print("Power = ",Y)
print("Check: ", X**N)
print()