Problème
L’exposant est numerator / denominator. Élevez base_value à cet exposant et retournez le résultat réel. Par exemple, un exposant de 1/3 donne la racine cubique positive.
Implémentez real_to_rational_power(base_value, numerator, denominator).
Entrée
base_value : La base positive.
numerator : Le numérateur de l’exposant.
denominator : Le dénominateur de l’exposant.
Sortie
Retournez base_value élevé à la puissance numerator / denominator.
Contraintes
0,1 ≤ base_value ≤ 100, avec au maximum deux chiffres après la virgule. −6 ≤ numerator ≤ 6 ; 1 ≤ denominator ≤ 10. Les réponses sont acceptées avec une erreur absolue ou relative de 0,000001.
Exemples
Entrée :
numerator = 1
base_value = 8.0
denominator = 3
Sortie attendue :
expected = 2.0
Entrée :
long long numerator = 1;
double base_value = 8.0;
long long denominator = 3;
Sortie attendue :
double expected = 2.0;
Entrée :
long numerator = 1;
double base_value = 8.0;
long denominator = 3;
Sortie attendue :
double expected = 2.0;
Explication
2 × 2 × 2 = 8, donc la racine cubique est 2.
Entrée :
numerator = -1
base_value = 16.0
denominator = 2
Sortie attendue :
expected = 0.25
Entrée :
long long numerator = -1;
double base_value = 16.0;
long long denominator = 2;
Sortie attendue :
double expected = 0.25;
Entrée :
long numerator = -1;
double base_value = 16.0;
long denominator = 2;
Sortie attendue :
double expected = 0.25;
Explication
La racine carrée de 16 est 4, et l’exposant négatif donne son inverse, 1/4.
Comment l'aborder
Essayez d'abord seul, puis ouvrez les indices un par un.
Indice 1
Commence par convertir la fraction d’exposant en un exposant réel unique.
Indice 2
Puis élève la base positive avec une opération de puissance réelle.
Indice 3
Vérifie que les exposants négatifs produisent bien des inverses, et évite les erreurs sur les racines fractionnaires.
Complexité attendue
temps O(1), espace supplémentaire O(1)
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.