Haskell程序打印镜像上三角星形图案
在本文中,我们将学习如何开发一个Haskell程序,使用mapM函数和unlines函数打印镜像上三角星形图案。镜像上三角星形图案是由星号组成的图案,形成三角形形状,三角形的顶端朝上。
以下星形图案将使您更好地理解镜像上三角星形图案。
* *** ***** ******* *********
该图案被称为“镜像”,因为三角形的左右两侧是对称的,形成了镜像。
算法
步骤1 − 我们将从定义一个用户自定义函数printSpaces开始。
步骤2 − 程序执行将从main函数开始。main()函数控制整个程序。它被写成main = do。在main函数中,传递一个数字,表示要打印镜像上三角星形图案的高度。
步骤3 − 变量“height”被初始化。它将保存要打印镜像上三角星形图案的整数高度。
步骤4 − 函数调用后,使用‘putStrLn’语句将结果打印到控制台。
示例1
在此示例中,定义了一个函数printMirrorUpperStarTriangle,它接收一个整数n表示三角形的高度,并打印该高度的镜像上三角星形图案。它通过使用mapM_函数迭代数字范围[1..n]来实现,对于每个数字,它打印适当数量的空格和星号以创建三角形图案。
module Main where printSpaces :: Int -> IO () printSpaces n = putStr (replicate n ' ') printStars :: Int -> IO () printStars n = putStrLn (replicate n '*') printMirrorUpperStarTriangle :: Int -> IO () printMirrorUpperStarTriangle n = mapM_ (\x -> do printSpaces (n - x) printStars (2 * x - 1) ) [1..n] main :: IO () main = do let height = 5 printMirrorUpperStarTriangle height
输出
* *** ***** ******* *********
示例2
在此示例中,使用mapM_和replicate函数定义了该函数,以打印镜像上三角星形图案。
module Main where printLine :: Int -> Int -> IO () printLine n x = putStrLn $ (replicate (n - x) ' ') ++ (replicate (2 * x - 1) '*') printMirrorUpperStarTriangle :: Int -> IO () printMirrorUpperStarTriangle n = mapM_ (printLine n) [1..n] main :: IO () main = do let height = 5 printMirrorUpperStarTriangle height
输出
* *** ***** ******* *********
示例3
在此示例中,定义了一个递归函数printMirrorUpperStarTriangle,它接收两个参数:n和x。n表示三角形的高度,x表示当前行。
module Main where
printSpaces :: Int -> IO ()
printSpaces n = putStr (replicate n ' ')
printStars :: Int -> IO ()
printStars n = putStrLn (replicate n '*')
printMirrorUpperStarTriangle :: Int -> Int -> IO ()
printMirrorUpperStarTriangle n x
| x > n = return ()
| otherwise = do
printSpaces (n - x)
printStars (2 * x - 1)
printMirrorUpperStarTriangle n (x + 1)
main :: IO ()
main = do
let height = 5
printMirrorUpperStarTriangle height 1
输出
* *** ***** ******* *********
结论
在Haskell中,要打印上三角星形图案,我们可以使用MapM_、replicate或递归函数。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP