Votre tâche consiste à prendre une liste d'arguments qui sont soit des entiers soit des opérateurs, et à les analyser comme ceci:
Il existe un opérateur actuel, qui commence par +.
Chaque fois qu'un opérateur est trouvé, l'opérateur actuel y changera.
Les opérateurs possibles sont: "+", "-", "*", "/" et "%", qui correspondent à leur signification en C et dans la plupart des langues.
Il existe une solution en cours d'exécution, qui commence à 0.
Chaque fois qu'un entier est trouvé, la solution est modifiée par le nombre selon l'opérateur; Par exemple, si l'opérateur est "/", la solution est divisée par le nombre.
Si une opération aboutit à un nombre mixte (c'est-à-dire avec une décimale), elle doit être renvoyée à un entier (c'est-à-dire que la décimale doit être coupée).
Sortez la solution finale.
Par exemple:
Les arguments 5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14
entraîneraient:
5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14
0 5 13 38 342 2052 4104 4000 1000 142 148 8 -> 8
Les entrées seront des arguments de ligne de commande ou de fonction, ou un équivalent pour votre langue.
Le code le plus court gagne!
%
arrondis vers -inf au lieu de 0?