# 遞迴寫法(1)
def sum_champagne_glass(n):
if n == 1:
return 1
else:
return sum_champagne_glass(n-1) + n*n
# 遞迴寫法(2)
def sum_champagne_glass(n):
if n == 1:
return 1
return sum_champagne_glass(n-1) + n*n
# 迴圈寫法
def sum_champagne_glass(n):
sum = 0
for i in range(1, n+1):
sum += i*i
return sum
while 1:
i = int(input("請輸入層數:"))
print('總共有:',sum_champagne_glass(i),'個酒杯')
遞迴並不是在任何情況下都比迴圈來的好用
遞迴就只是自己呼叫自己的函式
【範例二】請用遞迴方式計算出n階乘的值
觀察:
0! → 1
1! → 1
2! → 2
.....
n! → ?
歸納:
程式碼:
# 遞迴寫法
def factorial(n):
if n==0:
return 1
return factorial(n-1)*n
while 1:
i = int(input('請輸入您想計算的階乘:'))
print(factorial(i))
# 迴圈寫法
def factorial(n):
accumulate = 1
if n==0:
return 1
for i in range(2, n+1):
accumulate *= i
return accumulate
while 1:
i = int(input('請輸入您想計算的階乘:'))
print(factorial(i))