Newer
Older
arr = input().split()
stek = []
for elem in arr:
if elem in "*-+":
res = eval(f"{stek.pop(-2)} {elem} {stek.pop(-1)}")
stek.append(res)
elif elem == "/":
res = eval(f"{stek.pop(-2)} // {stek.pop(-1)}")
stek.append(res)
elif elem == "~":
res = stek.pop(-1) * (-1)
stek.append(res)
elif elem == "#":
stek.append(stek[-1])
elif elem == "!":
res = stek.pop(-1)
prod = 1
while res:
prod *= res
res -= 1
stek.append(prod)
elif elem == "@":
a, b, c = stek.pop(-3), stek.pop(-2), stek.pop(-1)
stek += [b, c, a]
else:
stek.append(int(elem))
print(stek[0])