使用Haskell编写一个程序来计算并打印给定数字的阶乘
发布时间:2023-12-09 20:32:41
下面是使用 Haskell 编写的计算给定数字的阶乘的程序。
-- 计算阶乘的函数
factorial :: Integer -> Integer
factorial 0 = 1
factorial n = n * factorial (n - 1)
-- 主函数
main :: IO ()
main = do
putStrLn "请输入一个非负整数:"
input <- getLine
let n = read input :: Integer
if n >= 0
then do
let result = factorial n
putStrLn ("输入的数字的阶乘为: " ++ show result)
else putStrLn "请输入一个非负整数。"
使用例子:
请输入一个非负整数: 5 输入的数字的阶乘为: 120
这个程序首先定义了一个计算阶乘的函数 factorial,它通过递归的方式计算阶乘。当输入参数为 0 时,阶乘为 1;否则,阶乘为 n 乘以 (n-1) 的阶乘。
然后,通过主函数来执行程序。主函数首先要求用户输入一个非负整数,并将其保存在 input 变量中。接着,将 input 转换为整数类型,并存储在 n 变量中。
程序会根据输入的整数进行判断,如果大于等于 0,就计算该数字的阶乘,并将结果打印出来;否则,打印一条错误信息。
这样,我们就可以通过运行该程序来计算并打印给定数字的阶乘了。
