Haskell程序查找正数的阶乘


本教程讨论了在Haskell编程语言中编写查找正数阶乘的程序。

在本教程中,我们将看到

  • 使用递归函数查找正数阶乘的程序。

  • 使用内置函数product查找正数阶乘的程序。

算法步骤

  • 输入或初始化一个变量来存储一个正整数。

  • 实现查找数字阶乘的程序逻辑。

  • 打印结果阶乘。

方法:使用递归函数查找正数的阶乘

示例

使用内置函数product查找正数阶乘的程序

-- function declaration
factorial :: Int->Int

-- function definition
factorial n = product [1..n]

main :: IO()
main = do
-- initializing variable n
   let n = 5
-- printing the resulting factorial
   print ("The factorial of a number " ++ show n ++ " is:")
   print (factorial n)

输出

"The factorial of a number 5 is:"
120

描述

  • 我们声明了一个名为factorial的函数,它接受一个整数参数并返回一个整数。在其函数定义中,该函数接受一个整数n作为参数。该函数使用双点运算符调用一个名为product的函数,该函数的参数列表是从1到n的整数。

  • product函数接受一个数字列表作为参数并返回它们的乘积。这里从1到n的所有数字的乘积就是n的阶乘。该函数返回product函数的输出。

  • 在主函数中,变量n被初始化为数字值5。factorial函数被调用,参数为数字n,并使用print函数打印返回的输出。

注意 - show函数接受一个数字作为参数并返回该数字的解析字符串。“++”是Haskell中连接字符串的运算符。

方法2:使用内置函数Product查找正数的阶乘

示例

使用递归函数查找正数阶乘的程序

-- function declaration
factorial :: Int->Int

-- function definition
--base case
factorial 0 = 1
factorial n = (n) * factorial (n-1)

main :: IO()
main = do
-- initializing variable n
   let n = 5
-- printing the resulting factorial
   print ("The factorial of a number " ++ show n ++ " is:")
   print (factorial n)

输出

"The factorial of a number 5 is:"
120

描述

  • 声明了一个名为factorial的函数,它接受一个整数参数并返回一个整数。在其函数定义中,它接受一个整数参数n并返回数字n与自身对参数n-1的递归调用的乘积。

  • 递归调用被调用,直到函数达到基本情况,其中参数为0。在基本情况下,函数返回1。此函数计算数字的阶乘。

  • 在主函数中,变量n被初始化为数字值5。factorial函数被调用,参数为数字n,并使用print函数打印返回的输出。

结论

在本教程中,我们讨论了两种在Haskell编程语言中实现查找正数阶乘的程序的方法。

更新于: 2022年12月15日

789 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告