使用#reduce在Ruby中的算术序列

时间:2015-05-09 00:51:47

标签: ruby

问题很简单:用params(first,n,c)实现算术序列算法,其中first是序列中的第一个数字,n是序列中的第n个索引,c是序列的加法数。这就是我所做的,但到目前为止,它给了我错误的答案。

编辑:找到解决方案,在

下面
def nthterm(first, n, c)
 (1..n).reduce(first){|memo, x| memo += c}
end



Test.assert_equals(nthterm(1, 2, 3), 7)
Test.assert_equals(nthterm(2, 2, 2), 6)
Test.assert_equals(nthterm(-50, 10, 20), 150)

2 个答案:

答案 0 :(得分:1)

ReadConsole
  

nthterm(1、10、20)
  ==>   [1、21、41、61、81、101、121、141、161、181、201]

答案 1 :(得分:0)

def nthterm(first, n, c)
   first + n * c 
end 

比循环c时间更简单,更高效,这是通过reduce隐式执行的操作。