開発環境
- 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 コメント:
コメントを投稿