Arrays 方法返回前n个奇数
只是一个简单的问题--我可能忽略了一些东西 以下方法正确输出前2个奇数:[1,3] 如果我没有弄错的话,我不应该希望数组的长度最终等于n吗?据我所知,输出数组[1,3]的长度是2,这也代表了前n个多赔率:2Arrays 方法返回前n个奇数,arrays,ruby,loops,while-loop,Arrays,Ruby,Loops,While Loop,只是一个简单的问题--我可能忽略了一些东西 以下方法正确输出前2个奇数:[1,3] 如果我没有弄错的话,我不应该希望数组的长度最终等于n吗?据我所知,输出数组[1,3]的长度是2,这也代表了前n个多赔率:2 因此,第6行中的比较现在将是让我们用n==2来进行示例 迭代1:array.length==0。 迭代2:array.length==1 这两个值都是
因此,第6行中的比较现在将是让我们用
n==2
来进行示例
迭代1:array.length==0
。
迭代2:array.length==1
这两个值都是
<2
。现在,如果您更改,我会这样做:
def first_n_odds(n)
(1..(2*n)).step(2).to_a
end
puts first_n_odds(10).inspect
输出:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
(1..n).map{x | x*2+1}
未命中1
,并包括第(n+1)个奇数.Oops,是的。正如你们看到的,我有很多不同的版本,我从IRB复制了一个错误的版本到这里。谢谢你,这真是太棒了。谢谢你们两位指导我完成这件事!我开始学习Ruby已经一个月了,所以我真的很感谢你们给我指出了正确的方向。@Andy按照StackOverflow礼仪,你最终应该接受帮助你的答案。你可以写p first\n\u赔率(10)
而不是put first\n\u赔率(10).inspect
什么使您认为数组长度最终不是n
?
def first_n_odds(n)
(1..(2*n)).step(2).to_a
end
puts first_n_odds(10).inspect
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]