練習問題(アルゴリズム編)/解答例/後置記法/Ruby
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[練習問題(アルゴリズム編)]]
例外処理がないです。
=begin
ruby main.rb 1 2 + 4 5 + \*
> 27
ruby main.rb 1 2 + 3 \* 4 5 / -
> 8.2
ruby main.rb 5 13 + 6 / 2 % 4 5 \* -
> -19
=end
st = []
ARGV.each { |e|
if e=='+'
b, a = st.pop, st.pop
st.push(a+b)
elsif e=='-'
b, a = st.pop, st.pop
st.push(a-b)
elsif e=='*'
b, a = st.pop, st.pop
st.push(a*b)
elsif e=='/'
b, a = st.pop, st.pop
st.push(a%b==0 ? a/b : a*1.0/b)
elsif e=='%'
b, a = st.pop, st.pop
st.push(a%b)
else
st.push(e.to_i)
end
}
p st.pop
終了行:
[[練習問題(アルゴリズム編)]]
例外処理がないです。
=begin
ruby main.rb 1 2 + 4 5 + \*
> 27
ruby main.rb 1 2 + 3 \* 4 5 / -
> 8.2
ruby main.rb 5 13 + 6 / 2 % 4 5 \* -
> -19
=end
st = []
ARGV.each { |e|
if e=='+'
b, a = st.pop, st.pop
st.push(a+b)
elsif e=='-'
b, a = st.pop, st.pop
st.push(a-b)
elsif e=='*'
b, a = st.pop, st.pop
st.push(a*b)
elsif e=='/'
b, a = st.pop, st.pop
st.push(a%b==0 ? a/b : a*1.0/b)
elsif e=='%'
b, a = st.pop, st.pop
st.push(a%b)
else
st.push(e.to_i)
end
}
p st.pop
ページ名: