Récemment, j'ai écrit un nouveau langage , pour éviter d'avoir à gérer l' ordre des opérations , j'ai simplement mis correctement entre parenthèses chaque expression pour éviter cela complètement.
Parce que les parenthèses sont aux codes de caractères 40-41, votre code devra être aussi court que possible.
Exemples
1+2*3
(1+(2*3))
2*(3+4)
(2*(3+4))
2*3/4+3
(((2*3)/4)+3)
342*32/8
((342*32)/8)
Règles
Les seules opérations que vous devrez gérer sont: *
(multiplication), /
(division), +
(addition) et -
(soustraction).
- L' ordre des opérations est le suivant:
- Parenthèse
- Multiplication, division
- Adition, soustraction
- Vous devriez préférer aller de gauche à droite
- Les nombres entrés seront toujours des entiers positifs (voir bonus)
Bonus
-20% si vous gérez la négation:
3+-5
(3+(-5))
-5% si vous autorisez le placement d'espaces à l'intérieur de l'entrée:
3 + 4
(3+4)
-10% si vous pouvez gérer les décimales en entrée:
1+.12
(1+.12)
1+0.21/3
(1+(0.21/3))
Bounty 500: si vous parvenez à écrire une réponse dans Sans nom / Blocs
1+2+3+4
(dont certaines solutions pourraient être entre parenthèses ((1+2)+(3+4))
)