【发布时间】:2021-11-27 23:02:47
【问题描述】:
所以我正在做一个任务,我必须找到第 n 个斐波那契数,我遇到了下面显示的这个想法,但是这会返回一个列表,我只想返回最终数字,例如 fibo 3 会给我 [0,1,1,2,3,5,8,13],除了我只想返回 13,有什么办法可以做到吗?这是我第一次使用 Haskell,我也是第一次学习函数式编程,感谢任何帮助。谢谢
fibo :: Integral x => x -> [x]
fibo n = fiboHelper [0,1] 0 1 n
fiboHelper :: Integral x => [x]->x->x->x->[x]
fiboHelper l x y 0 = l
fiboHelper l x y n = fiboHelper (l ++ [y+x] ++ [y+x+y]) (x+y) (y+x+y) (n-1)
【问题讨论】:
-
可能是
fibo 7 = 13,而不是fibo 3