Ruby FIzz-buzz 无法将数字推送到数组
Ruby FIzz-buzz can't push numbers to an array
因此,如您所见,我并不精通 Ruby 因此,如果您保持原始的回答而不是使用捷径,这会有所帮助。
我能够在第一个示例中使用我的嘶嘶声,我添加了绝对方法来处理负输入并使用变量来轻松适应将 3 和 5 更改为其他数字。但是,我无法将结果推送到数组,结果我只得到“1”。有人看到我哪里出错了吗?
# not array - works
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
puts "fizz-buzz"
elsif (i % fizz == 0)
puts "fizz"
elsif (i % buzz == 0)
puts "buzz"
else
puts i
end
end
end
end
# push to array - doesn't work
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
array = []
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
array.push("fizz-buzz")
elsif (i % fizz == 0)
array.push("fizz")
elsif (i % buzz == 0)
array.push("buzz")
else
array.push(i)
end
end
end
end
=> 1
WW
您需要 return 函数末尾的数组。
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
array = []
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
array.push("fizz-buzz")
elsif (i % fizz == 0)
array.push("fizz")
elsif (i % buzz == 0)
array.push("buzz")
else
array.push(i)
end
end
array
end
end
在 ruby 中,函数的最后一行用作您的 return 值。当您调用 1.upto
时,它会运行给定的块指定的次数,然后 return 运行 1
。在末尾添加 array
使其成为 return 数组。
因此,如您所见,我并不精通 Ruby 因此,如果您保持原始的回答而不是使用捷径,这会有所帮助。
我能够在第一个示例中使用我的嘶嘶声,我添加了绝对方法来处理负输入并使用变量来轻松适应将 3 和 5 更改为其他数字。但是,我无法将结果推送到数组,结果我只得到“1”。有人看到我哪里出错了吗?
# not array - works
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
puts "fizz-buzz"
elsif (i % fizz == 0)
puts "fizz"
elsif (i % buzz == 0)
puts "buzz"
else
puts i
end
end
end
end
# push to array - doesn't work
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
array = []
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
array.push("fizz-buzz")
elsif (i % fizz == 0)
array.push("fizz")
elsif (i % buzz == 0)
array.push("buzz")
else
array.push(i)
end
end
end
end
=> 1
WW
您需要 return 函数末尾的数组。
class Fixnum
define_method(:fizz_buzz) do
fizz = 3
buzz = 5
array = []
1.upto(self.abs) do |i|
if (i % fizz == 0) && (i % buzz == 0)
array.push("fizz-buzz")
elsif (i % fizz == 0)
array.push("fizz")
elsif (i % buzz == 0)
array.push("buzz")
else
array.push(i)
end
end
array
end
end
在 ruby 中,函数的最后一行用作您的 return 值。当您调用 1.upto
时,它会运行给定的块指定的次数,然后 return 运行 1
。在末尾添加 array
使其成为 return 数组。