python递归函数例子_Python 递归函数示例

1、一个数的乘阶(一个正整数的阶乘,是所有小于及等于该数的正整数的积,数字0的乘阶是1)

deffac_T(n):if n ==0:return 1

else:return fac_T(n-1) * n

######### 函数优化后的定义,通过尾递归方式实现函数 ###############

def fac_T_yh(n):

if n == 0:

return 1

return fac_T_yh(n-1) * n

调用函数:

ret = fac_T(5)

print(ret)

执行结果:

1342669-20200821161927968-593163140.png

2、通过二分法,在一个已排序的数组data_set中,找出n值所在的位置;假设数组的范围是[ low.... high ],我们需要查找的数字n就在这个范围里;查找的思路是:a、拿low到high正中间的数字,我们假设这个数字是mid;b、拿数字mid和数字n相比,如果mid > n,说明我们要查找的数字n在数字low到数字mid这个区间,否则数字n就在数字mid到数字high这个区间; c、无论数字n在那个区间,我们就重复a和b的过程,直到找出数字n的位置。

deffind_num(n,low,high,lst):

mid= int((low+high)/2)if low ==high:#print('n不在梳理data_lst中')

return

if lst[mid] >n:#print('n 在数列data_lst的左边')

find_num(n,low,lst[mid],lst)elif lst[mid]

find_num(n,lst[mid],high,lst)else:print('n在数列data_lst的%s位' %(lst[mid]))

data_lst = list(range(101))

调用函数:

>>> find_num(55,lst[0],lst[-1],lst)

执行结果:

1342669-20200821161617363-1916244860.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值