Problem
Der Exponent ist Zähler / Nenner. Hebe base_value auf diesen Exponenten und gib das reellwertige Ergebnis zurück. Zum Beispiel ergibt ein Exponent von 1/3 die positive Kubikwurzel.
Implementiere real_to_rational_power(base_value, numerator, denominator).
Eingabe
base_value: Die positive Basis.
numerator: Der Zähler des Exponenten.
denominator: Der Nenner des Exponenten.
Ausgabe
Gib base_value hoch numerator / denominator zurück.
Einschränkungen
0,1 ≤ base_value ≤ 100, mit höchstens zwei Dezimalstellen. −6 ≤ numerator ≤ 6; 1 ≤ denominator ≤ 10. Antworten werden mit einem absoluten oder relativen Fehler von 0,000001 akzeptiert.
Beispiele
Eingabe:
numerator = 1
base_value = 8.0
denominator = 3
Erwartete Ausgabe:
expected = 2.0
Eingabe:
long long numerator = 1;
double base_value = 8.0;
long long denominator = 3;
Erwartete Ausgabe:
double expected = 2.0;
Eingabe:
long numerator = 1;
double base_value = 8.0;
long denominator = 3;
Erwartete Ausgabe:
double expected = 2.0;
Erläuterung
2 × 2 × 2 = 8, daher ist die Kubikwurzel 2.
Eingabe:
numerator = -1
base_value = 16.0
denominator = 2
Erwartete Ausgabe:
expected = 0.25
Eingabe:
long long numerator = -1;
double base_value = 16.0;
long long denominator = 2;
Erwartete Ausgabe:
double expected = 0.25;
Eingabe:
long numerator = -1;
double base_value = 16.0;
long denominator = 2;
Erwartete Ausgabe:
double expected = 0.25;
Erläuterung
Die Quadratwurzel von 16 ist 4, und der negative Exponent ergibt den Kehrwert, also 1/4.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Wandle den Exponentenbruch zuerst in einen einzelnen reellen Exponenten um.
Hinweis 2
Erhebe dann die positive Basis mit einer reellen Potenzoperation.
Hinweis 3
Stelle sicher, dass negative Exponenten Kehrwerte erzeugen, und vermeide Fehler bei Wurzeln mit Bruchexponenten.
Erwartete Komplexität
Zeit O(1), zusätzlicher Speicher O(1)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.