我需要插入而不是可被3整除的数字," d3"字。而不是可被5整除的数字," d5"字。我该怎么做。我试过这里:
puts "How many digits do u want to see?"
number = gets.to_i
number.times do |n|
puts "#{n}"
if (n % 3 == 0)
puts "d3"
elsif (n % 5 == 0)
puts "d5"
end
end
如果输入数字7,则输出必须为:
1
2
d3
4
d5
d3
7
但是当我输入数字7时,我有不同的输出:
How many digits do u want to see?
7
0
d3
1
2
3
d3
4
5
d5
6
d3
我的错误在哪里?
答案 0 :(得分:2)
这里:
puts "How many digits do u want to see?"
number = gets.to_i
(1..number).each do |n|
if (n % 3 == 0 && n % 5 == 0)
puts "whatever you need"
elsif (n % 3 == 0)
puts "d3"
elsif (n % 5 == 0)
puts "d5"
else
puts n
end
end
<强>更改强>
1..number
跳过0 答案 1 :(得分:0)
在某个范围内调用时间会引发以下错误:
NoMethodError: undefined method `times' for 1..number:Range
使用次数就像数字一样。时间也将从0开始,在最后一个数字之前结束。这是一个可能的解决方案,它还增加了一个数字可以被3和5整除的可能性。
puts "How many digits do u want to see?"
number = gets.to_i
(1..number).each do |n|
if (n % 3 == 0 && n % 5 == 0)
puts "..." # whatever message you like
elsif (n % 3 == 0)
puts "d3"
elsif (n % 5 == 0)
puts "d5"
else
puts n
end
end