2012年9月11日火曜日

開発環境

『初めてのプログラミング 第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_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 コメント:

コメントを投稿