練習問題(アルゴリズム編)/解答例/後置記法/Python
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[練習問題(アルゴリズム編)]]
'''
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()
終了行:
[[練習問題(アルゴリズム編)]]
'''
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()
ページ名: