21 Mar 2013, 00:58
Distorted_pragsmall

Enrique Sánchez (17 posts)

I wanted to cry when I compared my solution (44 lines) to Chris’ (13 lines). My solution was this:

def old_roman_numerals num
	num = gets.chomp.to_i
	original_num = num
	roman_num = []

	if num >= 1000
		roman_num.push 'M' * (num/1000)
		num = num%1000
	end

	if num >= 500
		roman_num.push 'D' * (num/500)
		num = num%500
	end

	if num >= 100
		roman_num.push 'C' * (num/100)
		num = num%100
	end

	if num >= 50
		roman_num.push 'L' * (num/50)
		num = num%50
	end

	if num >= 10
		roman_num.push 'X' * (num/10)
		num = num%10
	end

	if num >= 5
		roman_num.push 'V' * (num/5)
		num = num%5
	end

	if num >= 1
		roman_num.push 'I' * (num/1)
	end

	puts "The number #{original_num} in old roman is #{roman_num.join}"
end

puts old_roman_numerals(puts 'Give me an integer:')

So I obviously simplified my code but decided to keep the use of an array instead of a string:

def old_roman_numerals num
	num = gets.chomp.to_i
	original_num = num
	roman_num = []

	roman_num.push 'M' * (num			 / 1000)
	roman_num.push 'D' * (num% 1000 /  500)
	roman_num.push 'C' * (num%  500 /  100)
	roman_num.push 'L' * (num%  100 /   50)
	roman_num.push 'X' * (num%   50 /   10)
	roman_num.push 'V' * (num%   10 /    5)
	roman_num.push 'I' * (num%    5 / 	  1)

	puts "The number #{original_num} in old roman is #{roman_num.join}"
end

puts old_roman_numerals(puts 'Give me an integer:')

So I just wanted to know, why would using a string be better than using an array? Or is it just preference?

25 Mar 2013, 17:27
Med__2008.08.19.09.44.43_pragsmall

Chris Pine (57 posts)

In this case, I don’t think a string is an better or worse than an array. Certainly if I were doing any processing on the result, I’d want to keep it an array. But since I knew I wanted it in string form anyway… [shrug]

17 Apr 2013, 23:53
Distorted_pragsmall

Enrique Sánchez (17 posts)

Thanks Chris, makes sense :)

  You must be logged in to comment