所以我想为我的类编写一些代码,它会输出一个n阶斐波那契数列中第一个k项的int列表。斐波纳契OCAML的N步代码
因此,对于那些你不知道,正一步斐波那契序列是当您添加上述N个前得到下一个,
so for n=1 it'd be 1,1,1,1,1,...
n=2, it'd be 1,1,2,3,5,...
n=3 it'd be 1,1,2,4,7...
我的方法是用启动基地的情况下,所以
let rec n_step n k=
if k=1 then [1] else
if n=1 then 1::nacci n k-1 else
但现在我卡在这里。我知道我需要迭代并将列表中的条款加起来,但我不确定如何完成此操作。
我做了一个辅助功能和
let rec sum lst =
match lst with
| [] -> 0
| h::t -> h + sum t
我试图使其选择性加入列表的最后n号,以获得下一个值,但我就死在那,以及
谢谢提前!
您尝试过什么,以完成该迭代?你在哪里存储你的数据?你是如何选择从数据结构中聚合哪些数据的? –
我编写了一个帮助函数总和,它将总结给定列表中的值(我将在那里添加),但是我确定如何使这个有选择地加起来的最后n个数字为下一个值 – useroe
我认为你需要显示更多的代码,是事情。我假设你有某种多值数据结构,那么你可以做一些N元素的添加?而且你不会让它永远增长,所以你要么使用类似队列的结构(LIFO),要么正在操纵一个固定数组并自己动手? –