Haskell程式列印映象下三角星形圖案


在Haskell中,我們可以使用unlines和replicate函式來列印映象下三角星形圖案。在第一個示例中,我們將使用( mirrorLowerTriangle n = unlines [replicate i '*' | i <- [1..n]] ++ unlines (reverse [replicate i '*' | i <- [2..n]]))函式,在第二個示例中,我們將使用(lowerMirrorTriangle n = unlines $ [replicate i '*' | i <- [1..n]] ++ [replicate i '*' | i <- [n-1,n-2..1]])函式。

演算法

  • 步驟1 − 程式執行將從main函式開始。main()函式控制整個程式。它被寫成main = do。

  • 步驟2 − 初始化名為“n”的變數,它將儲存要列印的映象下三角星形圖案的行數。

  • 步驟3 − lowerMirrorTriangle函式用於列印最終的映象下三角星形圖案,並結合使用unlines和replicate函式。

示例1

在這個示例中,使用reverse、unlines和replicate函式列印映象下三角星形圖案。

main = do
  let n = 5
  putStrLn $ mirrorLowerTriangle n

mirrorLowerTriangle :: Int -> String
mirrorLowerTriangle n = unlines [replicate i '*' | i <- [1..n]] ++ unlines (reverse [replicate i '*' | i <- [2..n]])

輸出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
*
**
***
****
*****
*****
****
***
**

示例2

在這個示例中,使用在main函式中定義的reverse、unlines和replicate函式列印映象下三角星形圖案。

main = do
  let n = 5
  putStrLn $ unlines [replicate i '*' | i <- [1..n]] ++ unlines (reverse [replicate i '*' | i <- [2..n]])

輸出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
*
**
***
****
*****
*****
****
***
**

示例3

在這個示例中,使用unlines和replicate函式列印映象下三角星形圖案。

main = do
  let n = 5
  putStrLn $ lowerMirrorTriangle n

lowerMirrorTriangle :: Int -> String
lowerMirrorTriangle n = unlines $ [replicate i '*' | i <- [1..n]] ++ [replicate i '*' | i <- [n-1,n-2..1]]

輸出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
*
**
***
****
*****
****
***
**
*

示例4

在這個示例中,使用在main函式中定義的unlines和replicate函式列印映象下三角星形圖案。

main = do
  let n = 5
  putStrLn $ unlines $ [replicate i '*' | i <- [1..n]] ++ [replicate i '*' | i <- [n-1,n-2..1]]

輸出

[1 of 1] Compiling Main             ( main.hs, main.o )
Linking main ...
*
**
***
****
*****
****
***
**
*

結論

映象下三角星形圖案是一種星號(*)以三角形形狀排列的圖案,其中三角形沿水平軸映象,三角形的頂點位於底部。換句話說,該圖案由一系列星號行組成,其中每一行比上一行多一個星號,並且這些行沿水平軸映象,因此最長的一行星號位於圖案的中間,最短的行位於圖案的頂部和底部。

更新於: 2023年3月28日

107 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告