Sha256: d20b63e10708b67f921a3420c00d47705048ed54fcd28b77e1f25fcdd455d472

Contents?: true

Size: 1.08 KB

Versions: 22

Compression:

Stored size: 1.08 KB

Contents

Roman_array = [
               [ 1000000, '_M'  ],
               [  900000, '_C_M' ],
               [  500000, '_D'  ],
               [  400000, '_C_D' ],
               [  100000, '_C'  ],
               [   90000, '_X_C' ],
               [   50000, '_L'  ],
               [   40000, '_X_L' ],
               [   10000, '_X'  ],
               [    9000, '_I_X' ],
               [    5000, '_V'  ],
               [    1000, 'M'  ],
               [     900, 'CM' ],
               [     500, 'D'  ],
               [     400, 'CD' ],
               [     100, 'C'  ],
               [      90, 'XC' ],
               [      50, 'L'  ],
               [      40, 'XL' ],
               [      10, 'X'  ],
               [       9, 'IX' ],
               [       5, 'V'  ],
               [       4, 'IV' ],
               [       1, 'I'  ]
              ]

def to_roman(val)
  if val < 0 or val >= 5000000
    raise "out of range '#{val}'"
  else
    s = ""
    Roman_array.each { |pair|
      while val >= pair[0]
        s << pair[1]
        val -= pair[0]
      end
    }
    return s
  end
end 

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
partitioned-1.0.1 examples/lib/roman.rb
partitioned-0.8.0 examples/lib/roman.rb