Ihre Aufgabe ist es, eine Liste von Argumenten zu erstellen, die entweder Ganzzahlen oder Operatoren sind, und diese wie folgt zu analysieren:
Es gibt einen aktuellen Operator, der mit + beginnt.
Jedes Mal, wenn ein Operator gefunden wird, wechselt der aktuelle Operator zu ihm.
Die möglichen Operatoren sind: "+", "-", "*", "/" und "%", die ihrer Bedeutung in C und den meisten Sprachen entsprechen.
Es wird eine laufende Lösung geführt, die bei 0 beginnt.
Jedes Mal, wenn eine Ganzzahl gefunden wird, wird die Lösung abhängig vom Operator um die Zahl geändert. zB wenn der Operator "/" ist, wird die Lösung durch die Zahl geteilt.
Wenn eine Operation zu einer gemischten Zahl führen würde (dh mit einer Dezimalzahl), muss sie auf eine Ganzzahl zurückgesetzt werden (dh die Dezimalzahl muss abgeschnitten werden).
Geben Sie die endgültige Lösung aus.
Beispielsweise:
Die Argumente 5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14
würden ergeben:
5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14
0 5 13 38 342 2052 4104 4000 1000 142 148 8 -> 8
Die Eingaben erfolgen als Befehlszeilen- oder Funktionsargumente oder als Entsprechung für Ihre Sprache.
Kürzester Code gewinnt!
%
Richtung -inf statt 0 runden?