Problema
L'esponente è dato da numerator / denominator. Eleva base_value a questo esponente e restituisci il risultato reale. Ad esempio, un esponente di 1/3 restituisce la radice cubica positiva.
Implementa real_to_rational_power(base_value, numerator, denominator).
Input
base_value: La base positiva.
numerator: Il numeratore dell'esponente.
denominator: Il denominatore dell'esponente.
Output
Restituisci base_value elevato a numerator / denominator.
Vincoli
0.1 ≤ base_value ≤ 100, con al massimo due cifre decimali. −6 ≤ numerator ≤ 6; 1 ≤ denominator ≤ 10. Le risposte sono accettate con un errore assoluto o relativo massimo di 0.000001.
Esempi
Input:
numerator = 1
base_value = 8.0
denominator = 3
Output atteso:
expected = 2.0
Input:
long long numerator = 1;
double base_value = 8.0;
long long denominator = 3;
Output atteso:
double expected = 2.0;
Input:
long numerator = 1;
double base_value = 8.0;
long denominator = 3;
Output atteso:
double expected = 2.0;
Spiegazione
2 × 2 × 2 = 8, quindi la radice cubica è 2.
Input:
numerator = -1
base_value = 16.0
denominator = 2
Output atteso:
expected = 0.25
Input:
long long numerator = -1;
double base_value = 16.0;
long long denominator = 2;
Output atteso:
double expected = 0.25;
Input:
long numerator = -1;
double base_value = 16.0;
long denominator = 2;
Output atteso:
double expected = 0.25;
Spiegazione
La radice quadrata di 16 è 4, e l'esponente negativo restituisce il reciproco, cioè 1/4.
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Prima trasforma la frazione dell’esponente in un unico esponente reale.
Suggerimento 2
Poi eleva la base positiva usando un’operazione di potenza reale.
Suggerimento 3
Assicurati che gli esponenti negativi producano reciproci, ed evita errori con le radici frazionarie.
Complessità attesa
tempo O(1), spazio aggiuntivo O(1)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.