鉴于以下变量 divisor_array,低,高限定的方法,其通常碳酸红宝石
- 打印的所有数值由低到高
- 如果正在打印的任何数量是通过在
divisor_array
任何除数数整除,打印数字+单词“fizzy” - 如果打印的号码可被数组中的所有数字整除,则应输出数字“reallyfizzy”。
测试值:generally_fizzy([2,3],1,7)
我的初始溶液:
def generally_fizzy(divisor_array, low, high)
divisors = Hash[*divisor_array]
low.upto(high) do |i|
divisors.each_pair do |k,v|
if((i % k == 0) && (i % v == 0))
puts "#{i} reallyfizzy"
elsif ((i % k == 0) || (i % v == 0))
puts "#{i} fizzy"
else
puts i
end
end
end
end
此溶液通过测试给定的,但是当divisor_array
尺寸从2个值提高到3和在其上打印出重复。除此之外,代码不是很优雅。
寻找一个可行的替代方案,可以处理divisor_array
尺寸变化。
你为什么要检查对而不是仅仅是一个值? –
家庭作业或教程? –