У меня есть код -перебрать Hash для получения значений, соответствующих массив
class Conversion
hash ={'I' => 1, 'V' => 5, 'X' => 10, 'L' => 50, 'C' => 100, 'D' => 500, 'M' => 1000}
puts "enter the string"
input = gets.chomp.upcase.split(//)
result = 0
hash.each do | key, value |
case key
when 'M'
result = result + value
when 'D'
result = result + value
when 'C'
result = result + value
when 'L'
result = result + value
when 'X'
result = result + value
when 'V'
result = result + value
when 'I'
result = result + value
end
end
puts result
end
c= Conversion.new
Я даю строку как MXV через командную строку и преобразования, которые в массив и иметь его в качестве MXV в «вход» , Теперь я хочу перебирать хеш, чтобы получить соответствующие «значения» ключей, которые у меня есть как String в моем массиве. Например, для MXV мне нужны значения = [1000, 10, 5].
Как я могу это сделать?
Вы должны написать, что '' MXV'.each_char.reduce (0) {| t, c | t + hash [c]} # => 1015 '. Имейте в виду, что есть проблема, когда строка, скажем, '' MXIV''' ('' IV ''' '' '' '' '' '' '' '' '. –