練習問題(アルゴリズム編)
'''
python main.py 1 2 + 4 5 + \*
> 27
python main.py 1 2 + 3 \* 4 5 / -
> 8.2
python main.py 5 13 + 6 / 2 % 4 5 \* -
> -19
'''
import sys
st = []
try:
for e in sys.argv[1:]:
if e=='+':
b, a = st.pop(), st.pop()
st.append(a+b)
elif e=='-':
b, a = st.pop(), st.pop()
st.append(a-b)
elif e=='*':
b, a = st.pop(), st.pop()
st.append(a*b)
elif e=='/':
b, a = st.pop(), st.pop()
if a%b==0: st.append(a/b)
else: st.append(a*1./b)
elif e=='%':
b, a = st.pop(), st.pop()
if a!=int(a) or b!=int(b) or (a/b)!=int(a/b):
print 'mod error!'
exit(1)
st.append(a%b)
else:
st.append(int(e))
except IndexError:
print 'index error!'
exit(1)
print st.pop()