開発環境
- 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_n = {'i' => 1,
'v' => 5,
'x' => 10,
'l' => 50,
'c' => 100,
'd' => 500,
'm' => 1000}
pre = 0
(roman.length - 1).downto(0) do |i|
num = r_n[roman[i].downcase]
return "有効なローマ数字になっていない!" unless num
num *= -1 if num < pre
pre = num if num >= pre
number += num
end
number
end
%w[mcmxcix MCMXCIX abcde].each do |roman|
puts "#{roman}: #{roman_to_integer roman}"
end
入出力結果(Terminal)
$ ./sample.rb mcmxcix: 1999 MCMXCIX: 1999 abcde: 有効なローマ数字になっていない! $
0 コメント:
コメントを投稿