[DF2007] Joseph Marchand calcule

ENONCE

Dans cette exercice, vous allez devoir écrire un programme capable de calculer des expressions mathématiques simples écrites en polonaise. Le principe de l'écriture en polonaise est le suivant :

On écrit tout d'abord l'opérateur à appliquer aux deux opérandes suivit justement des deux opérandes concernées par l'opérateur.

Exemples :

Notation infixe

Notation infixe parenthesée

Notation polonaise

    • 2 + 2
    • (2 + 2)
      • 2 2
    • 2 + 2 + 2
    • (2 + (2 + 2))
      • 2 + 2 2
    • 2 * 3 + 4 * 5
    • ((2 * 3) + (4 * 5))
      • * 2 3 * 4 5

CONTRAINTES

Certaines expressions pourront faire jusqu'à 1000 caractères.
ENTREE/SORTIE

Votre programme recevra en entrée l'opération en notation polonaise, et devra renvoyer le résultat de l'opération.

EXEMPLE(S) D'ENTREE/SORTIE

Exemple 1
en entrée ...

  • 1 2

en sortie ...

3

Exemple 2
en entrée ...

  • 1 2

en sortie ...

-1

Exemple 3
en entrée ...

* / * / * / * / - * + / 1 10 9 9 1 10 10 11 11 12 12 13 13

en sortie ...

65

Mince, j'ai fait "sauvegarder" au lieu d'aperçu. :x

Bref, mon problème, c'est pour le dernier exemple. En le faisant à la main, je trouve 80.9 (et mon programme aussi). Ca fait que je ne passe pas les deux derniers tests.

Qu'est-ce que j'ai mal compris ?

Moi j'obtiens 80.1, ce qui n'est toujours pas correct. On regardera ca prochainement.

--
O'Xian
Prologin

Je l'ai fait à la main, je trouve 65 : les calculs sont faits sur les entiers (les flottants posent des problèmes de précision, ils sont souvent évités dans les exercice du site).

Effectivement, autant/au temps[1] pour moi, j'ai mal parenthésé :s

[1] rayez la mention inutile

--
O'Xian qui va se cacher :s
Prologin

SVP, faites sauter Prologin pour qu'il grimpe plus haut !

Haha, pour cet algo, je me rappelle que ça ne marchait pas, et je debuggais de manière assez louche, par exemple je changeais un + en un -, etc. Puis ça a fini par marcher sur l'exemple o_O (donc partout).

Sinon, c'est au temps pour moi.

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.