Описать рекурсивную функцию PowerN(X, N) вещественного типа, находящую значение N-й степени числа X по формулам:
X 0 = 1,
X N = (X N / 2)2 при четных N > 0,
X N = X·X N–1 при нечетных N > 0,
X N = 1/X –N при N < 0
(X ≠ 0 — вещественное число, N — целое; в формуле для четных N должна использоваться операция целочисленного деления). С помощью этой функции найти значения X N для данного X при пяти данных значениях N.
Мой код:
#include <iostream>
#include <cmath>
using namespace std;
float power(float X, int N){
if (N != 0){
if (N < 0){
return 1 / power(X, -N);
}
else if(N>0){
if (N % 2 == 0){
float b=power(X, N/2);
return pow(b,2);
}
else{
return X * power(X, N - 1);
}
}
else{
return 1;
}
}
}
int main(){
float X;
int N;
cout<<"X=";
cin>>X;
for (int i=0;i<=5;i++){
cout<<"N=";
cin>>N;
cout<<X<<"^"<<N<<"="<<power(X,N)<<endl;
}
}