階乘是用來練習遞迴的經典題目
寫一個用來計算階乘的遞迴不難,遞迴關係式就這樣
n 為大於等於 0 的整數且
題目要求輸出時不僅僅要輸出 f(n) 的結果,還要把過程都一起丟出來,那就有 2 個做法
這邊我是放遞迴裡面,一邊算一邊處理
from sys import stdindef factorial(n: int): if n in (0, 1): # 如果 n 是 1 或 0,就直接返回 1 my_list.append(1) return 1 my_list.append(n) return n * factorial(n - 1)for n in stdin: n = int(n) my_list = [] # 用來保存計算過程 ans = factorial(n) print( f'{n}!', '=', " * ".join(map(str, my_list)), '=', ans )
如果還是只想用 for 循環,其實也不能阻止就是了