Показатель степени задаётся как numerator / denominator. Возведите base_value в эту степень и верните вещественный результат. Например, показатель степени 1/3 даёт положительный кубический корень.
Реализуйте функцию real_to_rational_power(base_value, numerator, denominator).
Входные данные
base_value: Положительное основание.
numerator: Числитель степени.
denominator: Знаменатель степени.
Выходные данные
Верните base_value, возведённое в степень numerator / denominator.
Ограничения
0.1 ≤ base_value ≤ 100, не более двух знаков после запятой. −6 ≤ numerator ≤ 6; 1 ≤ denominator ≤ 10. Ответы принимаются с абсолютной или относительной погрешностью не более 0.000001.
Примеры
Ввод:
numerator = 1
base_value = 8.0
denominator = 3
Ожидаемый вывод:
expected = 2.0
Ввод:
long long numerator = 1;
double base_value = 8.0;
long long denominator = 3;
Ожидаемый вывод:
double expected = 2.0;
Ввод:
long numerator = 1;
double base_value = 8.0;
long denominator = 3;
Ожидаемый вывод:
double expected = 2.0;
Пояснение
2 × 2 × 2 = 8, значит, кубический корень равен 2.
Ввод:
numerator = -1
base_value = 16.0
denominator = 2
Ожидаемый вывод:
expected = 0.25
Ввод:
long long numerator = -1;
double base_value = 16.0;
long long denominator = 2;
Ожидаемый вывод:
double expected = 0.25;
Ввод:
long numerator = -1;
double base_value = 16.0;
long denominator = 2;
Ожидаемый вывод:
double expected = 0.25;
Пояснение
Квадратный корень из 16 равен 4, а отрицательная степень берёт обратное значение, 1/4.
Как подступиться
Сначала попробуйте сами, затем открывайте подсказки по одной.
Подсказка 1
Сначала превратите дробную часть показателя в один вещественный показатель.
Подсказка 2
Затем возведите положительное основание в степень как вещественное число.
Подсказка 3
Убедитесь, что отрицательные показатели дают обратные значения, и не ошибайтесь с дробными корнями.
Ожидаемая сложность
время O(1), доп. память O(1)
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.