机器学习1001_Python基础_数据结构与算法_递归

递归是一种将原问题分解更小的问题以解决原问题的方法。
这就是递归的力量。
我们来看递归算法在python中的运用:对一个数组求和
首先,先来看一段没有使用递归算法的python程序
def list_sum(num_list):
    the_sum = 0
    for i in num_list:
        the_sum = the_sum + i
    return the_sum

print(list_sum([1,3,5,7,9]))
接着,我们使用递归算法实现相同的功能
def list_sum(num_list):
    if len(num_list) == 1:
        return num_list[0]
    else:
        return  num_list[0] + list_sum(num_list[1:])

print(list_sum([1,3,5,7,9]))

第一次循环,返回1+list_sum([3,5,7,9])
第二次循环,返回1+3+list_sum([5,7,9])
……
我们再看一个例子,将十进制转化为n进制,其中2<=n<=16
def to_str(n,base):
    convert_string = "0123456789ABCDEF"
    if n < base:
        return convert_string[n]
    else:
        return to_str(n // base,base) + convert_string[n % base]

print(to_str(402,16))

第一次循环,返回to_str(25,16) + 2
第二次循环,返回to_str(1,16) +9+ 2
第二次循环,返回1+9+ 2=192

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值