解题思路
实现题目的前后关系即可
代码
-spec fib(N :: integer()) -> integer().
fib(N) ->
do_fib(2, #{0 => 0, 1 => 1}, N).
do_fib(Index, Map, N) when Index =< N ->
Val = maps:get(Index - 1, Map) + maps:get(Index - 2, Map),
do_fib(Index + 1, Map#{Index => Val}, N);
do_fib(_, Map, N) ->
maps:get(N, Map).