2012年10月18日木曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 12章(新しいクラスのオブジェクト), 12.6(練習問題の続き)roman_to_integer 'mcmxcix'! を解いてみる。

その他参考書籍

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 コメント:

コメントを投稿