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

Python中常用的递归函数及用法

发布时间:2023-06-23 22:02:04

Python中的函数是可以递归调用的,递归函数是一种特殊的函数,它在函数体内调用自己。递归函数的设计与普通函数的设计类似,需要考虑输入输出的值,但同时需要考虑到递归的终止条件,例如当输入达到某种条件时,不再调用自身而直接返回值。

常用的递归函数包括斐波那契数列,阶乘,二分法查找等。

1. 斐波那契数列

斐波那契数列是一个数列,其中每个数都是前两个数的和。递归函数不断调用自身,直到达到终止条件。例如,计算斐波那契数列的前n个数可以使用以下代码实现:

def fibonacci(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

2. 阶乘

阶乘是一个正整数的连乘积,例如5的阶乘是1\*2\*3\*4\*5=120。递归函数不断调用自身,直到达到终止条件。例如,计算n的阶乘可以使用以下代码实现:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

3. 二分法查找

二分法查找是一种在有序数组中查找特定元素的算法,它将中间值与要查找的元素进行比较,如果中间值小于要查找的元素,则在中间值右侧继续查找,否则在中间值左侧继续查找。递归函数不断调用自身,直到达到终止条件。例如,使用二分法查找一个有序数组中的元素可以使用以下代码实现:

def binary_search(array, target, low, high):
    if low > high:
        return -1
    else:
        mid = (low + high) // 2
        if array[mid] == target:
            return mid
        elif array[mid] < target:
            return binary_search(array, target, mid+1, high)
        else:
            return binary_search(array, target, low, mid-1)