递归函数是一种在函数内部调用自身的编程技巧。它通常用于解决可以被分解为相同类型的更小问题的问题。递归函数包括两个重要的部分:基本情况和递归情况。
基本情况指的是在递归函数中可以直接得到结果的情况。在这种情况下,递归函数不再调用自身,直接返回结果。
递归情况指的是在递归函数中仍然需要调用自身的情况。在这种情况下,递归函数会将问题分解为更小的子问题,并使用相同的递归函数来解决子问题。
递归函数必须有一个停止条件,以防止无限递归。如果递归函数没有停止条件,它将无限循环调用自身,导致程序崩溃。
递归函数的实现需要注意正确的参数传递和返回值处理,以确保函数能够正确地返回结果。
递归函数在解决一些问题时非常有用,比如计算阶乘、斐波那契数列等。但需要注意的是,递归函数的效率通常比迭代函数低,因为每次调用递归函数都需要保存函数的上下文并返回结果。在使用递归函数时,应该考虑到性能和内存的消耗。
def fun(num):
#终止条件
if num<=1: #如果num<=1时,则返回1值
return 1
else:
return num+fun(num-1) #反之,则num+fun(num-1)
name=fun(3)
print(name) #6
简单的说,就是一直进行递归函数调用,直到满足num值<=1时,才终止递归函数的调用。
def factorial(n):
# 终止条件
if n == 0:
return 1
# 递归调用
return n * factorial(n-1)
# 调用递归函数计算阶乘
print(factorial(5)) # 输出 120