Ви повинні оцінити рядок, написаний у зворотному польському позначенні та вивести результат.
Програма повинна прийняти вхід і повернути результат. Для мов програмування, які не мають функцій прийому вводу / виводу, ви можете взяти на себе функції, такі як readLine / print.
Вам заборонено використовувати будь-який тип "eval" у програмі.
Числа та оператори розділені одним або кількома пробілами.
Ви повинні підтримувати принаймні оператори +, -, * та /.
Вам потрібно додати підтримку до негативних чисел (наприклад, -4
це не те саме, що 0 4 -
) та чисел з плаваючою комою.
Ви можете припустити, що введення є дійсним та дотримується наведених вище правил
Випробування
Вхід:
-4 5 +
Вихід:
1
Вхід:
5 2 /
Вихід:
2.5
Вхід:
5 2.5 /
Вихід:
2
Вхід:
5 1 2 + 4 * 3 - +
Вихід:
14
Вхід:
4 2 5 * + 1 3 2 * + /
Вихід:
2
eval
для розбору чисел? Це звучить досить ламано. (Наскільки я знаю, GolfScript є однією з таких мов. Я думаю, що це теж порушено.)
eval(s)
краще, ніжfloat(s)
~
. :-P