python递归求阶乘和

发布时间 2023-09-17 12:49:31作者: onullo

一些基本概念介绍:
阶乘:是指从1到n的连续自然数相乘的积。负数没有阶乘。

递归:函数作为一种代码封装,除了被其他程序正常调用外,还可以被函数内部代码调用。函数定义中调用函数自身的方式称为递归。

递归实现的两个关键点:
(1)存在一个或多个基例,基例不需要再次递归,它是确定的表达式。否则,无限递归将耗尽计算资源!
(2)所有递归链要以一个或多个基例结尾。

 

python递归求阶乘和的代码实现:

 1 # 本程序:根据用户输入的整数n,计算并输出n的阶乘和
 2 # 递归实现阶乘
 3 def factorial(num):
 4     if num == 1:# 给出了num为1时的基例,当num为1时该函数不再递归,返回1(即1的阶乘)
 5         return 1
 6     else:
 7         return num * factorial(num-1)# 递归
 8         
 9 # 递归实现阶乘和。举例,3的阶乘和=3!+2!+1!
10 def facSum(num):
11     if num == 1:# 给出了num为1时的基例,当num为1时该函数不再递归,返回1(即1的阶乘和)
12         return 1
13     else:
14         return factorial(num) + facSum(num-1)# 递归
15 n = eval(input("请输入一个整数: "))
16 print(facSum(abs(int(n))))