1. 程式人生 > >Python求出 1+2!+3!+...+20!的和

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的內迴圈。