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