Su tarea es tomar una lista de argumentos que sean enteros u operadores, y analizarlos así:
Hay un operador actual, que comienza como +.
Cada vez que se encuentra un operador, el operador actual cambiará a él.
Los operadores posibles son: "+", "-", "*", "/" y "%", que corresponden a sus significados en C y la mayoría de los lenguajes.
Hay una solución en ejecución que comienza en 0.
Cada vez que se encuentra un número entero, la solución se modifica por el número dependiendo del operador; por ejemplo, si el operador es "/", entonces la solución se divide por el número.
Si una operación daría como resultado un número mixto (es decir, con un decimal), debe volver a un número entero (es decir, el decimal debe cortarse).
Salida de la solución final.
Por ejemplo:
Los argumentos 5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14darían como resultado:
5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14
0 5 13 38 342 2052 4104 4000 1000 142 148 8 -> 8
Las entradas serán como argumentos de línea de comando o función, o un equivalente para su idioma.
¡El código más corto gana!
%redondea hacia -inf en lugar de 0?