Sua tarefa é pegar uma lista de argumentos inteiros ou operadores e analisá-los da seguinte maneira:
Existe um operador atual, que inicia como +.
Cada vez que um operador é encontrado, o operador atual muda para ele.
Os possíveis operadores são: "+", "-", "*", "/" e "%", que correspondem aos significados em C e na maioria dos idiomas.
Há uma solução em execução mantida, que começa em 0.
Cada vez que um número inteiro é encontrado, a solução é modificada pelo número, dependendo do operador; por exemplo, se o operador for "/", a solução será dividida pelo número.
Se uma operação resultar em um número misto (isto é, com um decimal), ela deve ser convertida em um número inteiro (isto é, o decimal deve ser cortado).
Saída da solução final.
Por exemplo:
Os argumentos 5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14
resultariam em:
5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14
0 5 13 38 342 2052 4104 4000 1000 142 148 8 -> 8
As entradas serão como argumentos de linha de comando ou função, ou um equivalente para o seu idioma.
O menor código vence!
%
arredondar para -inf em vez de 0?