[[練習問題(アルゴリズム編)]]

例外処理がないです。

 =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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS