python 函数二

来源:互联网 发布:mac电脑虚拟机win10 编辑:程序博客网 时间:2024/05/20 18:51

递归函数

递归函数就是在函数内调用自己

1.使用递归计算阶乘

def add(num):    if num == 1:        return 1    else:        return num * add(num - 1)----------------num = int(input('输入一个正整数计算它的阶乘:'))result = add(num)print('%d的阶乘是:%d' %(num,result))=> 120

2.斐波那契数列

递归是在python中是非常消耗内存的,计算40的斐波那契数列使用迭代是秒计算的,而使用递归等很长一段时间

使用迭代计算斐波那契数列

def fib1(num):    if num < 0:        return 0    m1 = 1    m2 = 1    m3 = 1    while (num - 2 > 0):        m3 = m2 + m1        m1 = m2        m2 = m3        num -= 1    return m3--------------num = int(input('输入一个正整数用迭代计算它的斐波那契数列:'))result = fib1(num)print('%d的斐波那契数列是:%d' %(num,result))

使用递归计算斐波那契数列

def fib2(num):    if num < 0:        return 0    if num == 1 or num == 2:        return 1    else:        return fib2(num - 1) + fib2(num - 2)------------    num = int(input('输入一个正整数用递归计算它的斐波那契数列:'))result = fib2(num)print('%d的斐波那契数列是:%d' %(num,result))