[英]Loop through an array while summing the output
我正在尝试使用for循环,然后将所有输出求和。 我知道这是一个基本问题,但是我不确定是应该在循环中还是使用另一个数组来解决这个问题。
例如:
for i in 1..100
if foo / 2 == 0
#find the sum of all outputs
end
结束
尝试这个:
(2..100).step(2).inject(:+) #=> 2550
要么:
2.step(100,2).inject(:+) #=> 2550
您可以使用sum
代替Ruby 2.4+中的inject(:+)
我不确定您要问的是什么,但我的初步理解是,您希望对满足特定条件的范围(1..100)中的所有数字求和。 在这种情况下,除以2本身,除以2的东西不能等于0。 我想知道您是否表示%2,在这种情况下,您要求和1..100范围内的所有偶数。 这可以通过执行以下操作来完成。
(1..100).select {|x| x if x.even?}.reduce(:+)
实际上,您希望枚举一个范围,并仅选择满足条件的数字,如块中所指定。 调用reduce并将其传递给累加器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.