開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 12(新しいクラスのオブジェクト), 12.6(練習問題の続き)、roman_to_integer 'mcmxcix'! を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
roman_to_integer 'mcmxcix'!
コード(TextWrangler)
sample.rb
#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-
def roman_to_integer roman
number = 0
r_i = {'I' => 1,
'V' => 5,
'X' => 10,
'L' => 50,
'C' => 100,
'D' => 500,
'M' => 1000}
i = roman.length - 1
pre = 0
while i >= 0
r = roman[i].upcase
i -= 1
n = r_i[r]
return '有効なローマ数字になっていない' if !n
if n < pre
n *= -1
else
pre = n
end
number += n
end
number
end
%w[mcmxcix abcde].each do |roman|
puts "#{roman}: #{roman_to_integer roman}"
end
入出力結果(Terminal)
$ ./sample.rb mcmxcix: 1999 abcde: 有効なローマ数字になっていない $
0 コメント:
コメントを投稿