所以我想爲我的類編寫一些代碼,它會輸出一個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),要麼正在操縱一個固定數組並自己動手? –