我试图在七周内从Seven Languages解决一个简单的Ruby问题
使用just打印十六个数字的数组,一次打印四个数字的内容
each
这是我想出的,这可以通过简单的方式完成还是让它变得更好?
a = (1..16).to_a
i = 0
j = []
a.each do |item|
i += 1
j << item
if(i % 4 == 0)
p j
j = []
end
end
Run Code Online (Sandbox Code Playgroud)
它可以each_slice在一行中使用
a.each_slice(4){|x| p x}
Teja,你的解决方案还可以.当您需要使用每个时,算法的复杂性将受到数组大小的限制.
我想出了解决方案.除了它不使用aux var(j)来存储部分结果之外,它与您的想法相同.
i = 0
a.each do |item|
p a[i, 4] if(i % 4 == 0)
i +=1
end
Run Code Online (Sandbox Code Playgroud)