gpt4 book ai didi

functional-programming - Erlang 中的 Collat​​z 序列

转载 作者:行者123 更新时间:2023-12-04 02:27:44 25 4
gpt4 key购买 nike

我要解决的问题如下:编写一个名为 collat​​z 的 Erlang 函数,它接受一个参数 N。您可以假设 N 是一个大于或等于 1 的整数。该函数应打印以 N 开头的 Collat​​z 序列(每行一个数字)。例如,collat​​z( 4 ) 应打印 4、2、1(在不同的行上)。 collat​​z( 6 ) 应该打印 6, 3, 10, 5, 16, 8, 4, 2, 1(在不同的行上)。

我编写的 collat​​z 函数工作正常,但我很难在单独的行上打印输出。下面代码中被注释掉的部分是我尝试在不同的行上生成输出。

    collatz(1) -> [1];
collatz(N) when N rem 2 == 0 ->
[N|collatz(N div 2)];
%[io:format("Collatz is : ~p~n",[N])N|collatz(N div 2)];
collatz(N) ->
[N|collatz(3*N+1)].
%[io:format("Collatz is : ~p~n",[N])N|colla[N|collatz(N div 2)]tz(3*N+1)].

当我调用 collat​​z(5) 时得到的输出是 [5,16,8,4,2,1]。我希望这些数字打印在不同的行上。

最佳答案

与其运行整个程序并打印结果,不如考虑在每次迭代之前打印每个元素,例如

collatz(N) -> io:format("~p~n", [N]), collatz(next_collatz(N)).

关于functional-programming - Erlang 中的 Collat​​z 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66230574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com