25 Python递归函数其实就是盗梦空间

 欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力

对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

    专栏:

文章概述:对Python递归函数的介绍

关键词:Python递归函数

本文目录

Python递归函数

阶乘:

连乘会了,连加也是一样

改成递归

还是利用递归,完成累加

  

Python递归函数

所谓递归,就是在函数内部调用它自己本身;

递归函数的一个必要条件是要有终止条件,否则栈就会溢出。通过递归可以实现很多经典的算法,如阶乘、斐波那契数列等。

阶乘:

也就是连乘

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


#计算5的阶乘
print(i,'!=',factorial(5))

连乘会了,连加也是一样

data = list(range(1, 101))
print(data)


result = 0
for x in data:
  result += x
print(result)

改成递归

def my_add(n):
  if n==1:
    return 1
  return n + my_add(n-1)


#计算1到100的累加
print(i,'+=',my_add(100))

还是利用递归,完成累加

data = list(range(1, 101))
print(data)

def my_add(a, b):
  if len(a)==2:
    return a[0]+a[1]+b
    #去掉最后一个元素
  return my_add(a[:-1], a[-1]) + b
my_add(data[:-1], data[-1])
# my_add([1, 2, ..., 98], 99) 递归调用为 my_add([1, 2, ..., 97], 98) + 99。b一直在增加
#直到 my_add([1, 2], 99),结果为 1 + 2 + 99 = 102
  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值