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 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告