ダイヤモンド出力を再帰的に生成する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
*
*
*
*
*
*
*
*
*
誰かが残りの半分で私を助けることができますか?前もって感謝します。