python基础教程100例题: 25&26

25、题目:求1+2!+3!+...+20!的和

        这个题就是运用了二重循环。大循环是让乘积的式子从 1 到 20,小循环表示 对大循环的每一个 n 都求它的阶乘。最后输出结果即可。 

a = 1
sum = 0
for n in range(1,21):
    for i in range(1,n+1):
        a = a * i
    sum += a
    a = 1
print(sum)

26、 题目:利用递归方法求 5!

这道题给我们一个限制,就是必须用递归的方法,递归其实就是不断调用自身。优点就是便于理解,把大问题拆成一个个小问题;缺点就是需要不断调用,所以运行速度比较慢。

def factorial(x):
    if x == 1:
        return 1
    else:
        return x * factorial(x-1)
print(factorial(5))

         递归需要设置初始值,也就是如果求 1! 直接输出1;当 x >= 1 时,就是用上一步递归的结果再乘以设置的参数x,然后不断调用 factorial(x-1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值