Python求出 1+2!+3!+...+20!的和

在不使用递归函数,使用循环嵌套的情况下实现1+2!+3!+…+20!的和

也就是 1+(1×2)+(1×2×3)+(1×2×3×4)

sum=0    #定义和的变量 sum
n=1        #定义累乘的初始值
for i in range(1,21):  #range函数(1,21)运行20次,区间[1,20] 闭区间
    for j in range(1,i):  #执行内循环
        n*=j	   #复合运算符每执行一次for循环,n=n*j  
    n*=i	 #使累乘的结果再乘最外层的i  
    sum+=n  #每执行一次外循环 sum就会累加
    n=1     	#重新定义累乘的值,为了下一次的内循环
print(sum)

举个例子 当 i = 3的时候,内循环执行2次, 内循环 第一次是 n * = 1 第二次是 n * = 2 内循环n的最终结果为2 跳出内循环 在外循环中 n * = i 得出6 。由此 3! 也就是(1×2×3)=6,最后 n 必须设定为1 为了下次的循环 否则这次的n的值,会影响到 i = 4的内循环。

猜你喜欢

转载自blog.csdn.net/weixin_43078957/article/details/85295331
今日推荐