"fizzbuzz" 的代码无效。只有 "fizzbuzz" 返回了多次
Code for "fizzbuzz" doesn't work. Only "fizzbuzz" returned multiple times
谁能解释一下为什么下面的代码不能正常工作?它只有 returns "fizzbuzz" 100 次作为答案。谢谢。
def fizzbuzz(number)
idx = 0
while idx <= number
num = number[idx]
if num % 3 == 0 && num % 5 == 0
puts 'fizzbuzz'
elsif num % 5 == 0
puts 'buzz'
elsif num % 3 == 0
puts 'fizz'
else
puts num
end
idx += 1
end
end
fizzbuzz(100)
这里有两个问题:
num = number[idx]
idx
变量应该用于检查而不是 num
:
def fizzbuzz(number)
idx = 0
while idx <= number
if idx % 3 == 0 && idx % 5 == 0
puts 'fizzbuzz'
elsif idx % 5 == 0
puts 'buzz'
elsif idx % 3 == 0
puts 'fizz'
else
puts idx
end
idx += 1
end
end
fizzbuzz(100)
以上是您的解决方案。
无论您将什么数字传递给 fizzbuzz
方法,它总是打印 'fizzbuzz'
的原因是因为您将 number[idx]
分配给局部变量 [=13] =] 您应该在条件语句中使用 idx
计数器的位置。
您需要打印从 1 到您传递给 fizzbuzz
的数字。对于 3 的倍数打印“Fizz”而不是数字,对于 5 的倍数打印“Buzz”。对于同时为 3 和 5 的倍数的数字,打印“FizzBuzz”。
谁能解释一下为什么下面的代码不能正常工作?它只有 returns "fizzbuzz" 100 次作为答案。谢谢。
def fizzbuzz(number)
idx = 0
while idx <= number
num = number[idx]
if num % 3 == 0 && num % 5 == 0
puts 'fizzbuzz'
elsif num % 5 == 0
puts 'buzz'
elsif num % 3 == 0
puts 'fizz'
else
puts num
end
idx += 1
end
end
fizzbuzz(100)
这里有两个问题:
num = number[idx]
idx
变量应该用于检查而不是num
:def fizzbuzz(number) idx = 0 while idx <= number if idx % 3 == 0 && idx % 5 == 0 puts 'fizzbuzz' elsif idx % 5 == 0 puts 'buzz' elsif idx % 3 == 0 puts 'fizz' else puts idx end idx += 1 end end fizzbuzz(100)
以上是您的解决方案。
无论您将什么数字传递给 fizzbuzz
方法,它总是打印 'fizzbuzz'
的原因是因为您将 number[idx]
分配给局部变量 [=13] =] 您应该在条件语句中使用 idx
计数器的位置。
您需要打印从 1 到您传递给 fizzbuzz
的数字。对于 3 的倍数打印“Fizz”而不是数字,对于 5 的倍数打印“Buzz”。对于同时为 3 和 5 的倍数的数字,打印“FizzBuzz”。