欢迎访问宙启技术站
智能推送

使用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,就计算该数字的阶乘,并将结果打印出来;否则,打印一条错误信息。

这样,我们就可以通过运行该程序来计算并打印给定数字的阶乘了。