592. Bruchaddition und -subtraktion
Schwierigkeit:Mittel
Themen:Mathematik, String, Simulation
Geben Sie bei einem gegebenen Zeichenfolgenausdruck, der einen Ausdruck der Addition und Subtraktion von Brüchen darstellt, das Berechnungsergebnis im Zeichenfolgenformat zurück.
Das Endergebnis sollte ein irreduzibler Bruch sein. Wenn Ihr Endergebnis eine ganze Zahl ist, ändern Sie es in das Format eines Bruchs mit dem Nenner 1. In diesem Fall sollte also 2 in 2/1 umgewandelt werden.
Beispiel 1:
-
Eingabe: Ausdruck = "-1/2+1/2"
-
Ausgabe: „0/1“
Beispiel 2:
-
Eingabe: Ausdruck = "-1/2+1/2+1/3"
-
Ausgabe: „1/3“
Beispiel 3:
-
Eingabe: Ausdruck = "1/3-1/2"
-
Ausgabe: „-1/6“
Einschränkungen:
- Die Eingabezeichenfolge enthält nur „0“ bis „9“, „/“, „+“ und „-“. Das gilt auch für die Ausgabe.
- Jeder Bruch (Eingabe und Ausgabe) hat das Format ±Zähler/Nenner. Wenn der erste Eingabebruch oder die Ausgabe positiv ist, wird „+“ weggelassen.
- Die Eingabe enthält nur gültige irreduzible Brüche, wobei der Zähler und Nenner jedes Bruchs immer im Bereich [1, 10] liegen. Wenn der Nenner 1 ist, bedeutet dies, dass dieser Bruch tatsächlich eine ganze Zahl in einem oben definierten Bruchformat ist.
- Die Anzahl der angegebenen Brüche liegt im Bereich [1, 10].
- Zähler und Nenner des Endergebnisses sind garantiert gültig und liegen im Bereich von 32-Bit int.
Lösung:
Wir müssen die Eingabezeichenfolge sorgfältig analysieren und arithmetische Operationen an den Brüchen durchführen. Die Schritte sind wie folgt:
-
Eingabeausdruck analysieren: Einzelne Brüche aus der Ausdruckszeichenfolge extrahieren.
-
Berechnen Sie das Ergebnis: Addieren oder subtrahieren Sie die Brüche Schritt für Schritt.
-
Vereinfachen Sie das Ergebnis: Wandeln Sie den letzten Bruch in seine irreduzible Form um.
Lassen Sie uns diese Lösung in PHP implementieren: 592. Bruchaddition und -subtraktion
<?php
// Example usage
echo fractionAddition("-1/2+1/2"); // Output: "0/1"
echo "\n";
echo fractionAddition("-1/2+1/2+1/3"); // Output: "1/3"
echo "\n";
echo fractionAddition("1/3-1/2"); // Output: "-1/6"
?>
Erläuterung:
-
gcd-Funktion: Berechnet den größten gemeinsamen Teiler zweier Zahlen, was bei der Vereinfachung des Bruchs hilft.
-
addFractions-Funktion: Addiert zwei Brüche. Es berechnet den gemeinsamen Nenner, passt die Zähler entsprechend an, addiert sie und vereinfacht dann den resultierenden Bruch.
-
fractionAddition-Funktion: Dies ist die Hauptfunktion, die den Eingabeausdruck analysiert, reguläre Ausdrücke verwendet, um alle Brüche zu extrahieren, und sie mithilfe der Funktion addFractions iterativ addiert.
Testfälle:
-
fraktionAddition("-1/2+1/2") gibt "0/1" zurück.
-
fraktionAddition("-1/2+1/2+1/3") gibt "1/3" zurück.
-
FractionAddition("1/3-1/2") gibt "-1/6" zurück.
Diese Lösung verarbeitet alle erforderlichen Vorgänge und gibt die korrekte Ausgabe für jeden gegebenen Ausdruck zurück.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt von. Bruchaddition und -subtraktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn