小编v17*_*v17的帖子

如何在haskell中正确解决帕斯卡三角形?

我正在 Haskell 中实现 Pascal Triangle,但代码没有以正确的方式工作。该代码又给出了 1 行。我也试图像树一样打印结果,但这对我来说很困难和困惑,所以我没有添加打印代码。

这些是我得到的结果:

*Main> pascal 1
[[1],[1,1]]
*Main> pascal 2
[[1],[1,1],[1,2,1]]
Run Code Online (Sandbox Code Playgroud)

预期输出:

*Main> pascal 2
    [[1],[1,1]]
Run Code Online (Sandbox Code Playgroud)

理想输出:

*Main> pascal 3
           
         1  
        1 1 
       1 2 1
Run Code Online (Sandbox Code Playgroud)

这是代码:

choose n 0 = 1
choose 0 k = 0
choose n k = choose (n-1) (k-1)* n `div` k

pascal :: Integer -> [[Integer]]
pascal 0 = [[1]]
pascal m = pascal (m - 1) ++ [[choose m k | k <- [0,1..m]]]
Run Code Online (Sandbox Code Playgroud)

recursion haskell pascals-triangle

-1
推荐指数
1
解决办法
443
查看次数

标签 统计

haskell ×1

pascals-triangle ×1

recursion ×1