python编写递归函数、计算n!(n=10)_使用递归来找到计算N的不同方法

假设“方法”意味着“硬币摆放的精确顺序”,这里有一个递归的解决方案。在def T_recurse (n):

if 0 == n:

return 1

elif n < 3:

return 0

else:

return T_recurse(n - 4) + T_recurse(n - 6)

print(T_recurse(100))

以及更快的解决方案

^{pr2}$

(也有一个涉及多项式根的解析解x^6 - x^2 - 1,但实际计算起来比较慢。)

假设ways的意思是“一个有这么多,另一个有那么多”,那么这里有一个递归的解决方案:

^{3}$

递归式的经济放缓虽然仍呈指数级增长,但并不严重。但是,迭代给你的是二次型:def S_iter (n, coins):

last_row = [0 for i in range(n + 1)]

last_row[0] = 1

for coin in coins:

this_row = []

for i in range(n+1):

if i < coin:

this_row.append(last_row[i])

else:

this_row.append(last_row[i] + this_row[i - coin])

last_row = this_row

return last_row[n]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值