我需要编写一个将以递归方式生成钻石输出的Haskell程序。 这里是给定的输入输出示例
使用Haskell打印钻石图案
输入:1
输出:
*
* *
*
输入:2
输出:
*
* *
*
* *
* * * *
* *
*
* *
*
输入:3
输出:
*
* *
*
* *
* * * *
* *
*
* *
*
* *
* * * *
* *
* * * *
* * * * * * * *
* * * *
* *
* * * *
* *
*
* *
*
* *
* * * *
* *
*
* *
*
我写了以下功能:
next 0 = [1,0,1]
next n = map (+3^n) (next (n-1)) ++ next (n-1) ++ map (+3^n) (next (n-1))
lpad n = map (++"*") (zipWith ($) (map (take)(next (n-1))) ((repeat(repeat ' '))))
pretty n = putStrLn $ intercalate "\n" $ lpad n
这给下面的输出:
漂亮1
*
*
*
漂亮的2
*
*
*
*
*
*
*
*
*
谁能帮助我的另一半?提前致谢。
这被要求在PUCSD考试。 (浦那大学计算机科学系)。 – 2012-12-10 18:33:43
它是我的主人。 – 2012-12-10 18:36:59