The idea is to create a function that gets a number passed in and ouputs a multiplication grid.
For example the desired output for grid(10)
would be :
1,2,3,4,5,6,7,8,9,10
2,4,6,8,10,12,14,16,18,20
3,6,9,12,15,18,21,24,27,30
4,8,12,16,20,24,28,32,36,40
5,10,15,20,25,30,35,40,45,50
6,12,18,24,30,36,42,48,54,60
7,14,21,28,35,42,49,56,63,70
8,16,24,32,40,48,56,64,72,80
9,18,27,36,45,54,63,72,81,90
10,20,30,40,50,60,70,80,90,100
I've come up with two variations of the same solution:
Variation 1
def grid1(grid_size)
output = String.new
for y in 1..grid_size
line = Array.new
for x in 1..grid_size
line << x * y
end
output += "#{line.join(",")}\n"
end
output
end
Variation 2
def grid(grid_size)
output = (1..grid_size).to_a.map do |y|
(1..grid_size).to_a.map{|x| x*y}.join(",")
end
output
end
Any other ideas on how to solve this or ways that the current solutions could be improved would be most appreciated!