Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 方法返回前n个奇数_Arrays_Ruby_Loops_While Loop - Fatal编程技术网

Arrays 方法返回前n个奇数

Arrays 方法返回前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 这两个值都是

只是一个简单的问题--我可能忽略了一些东西

以下方法正确输出前2个奇数:[1,3]

如果我没有弄错的话,我不应该希望数组的长度最终等于n吗?据我所知,输出数组[1,3]的长度是2,这也代表了前n个多赔率:2


因此,第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]