1.程序
n = int(input())
def fact(n):
if n == 0 | n == 1:
return 1
elif n > 1:
return n * fact(n - 1)
print(fact(n))
2.分析
首先,阶乘本身就是一个递归问题,那最好的方法就是写一个递归函数,即函数调用自身,递归函数一定要有基例,那就先举出基例,我们发现当n=0时,阶乘为1,当n=1时,阶乘也为1,当n=2时,阶乘为2=2*1,当n=3时,阶乘为6=3*2*1,由此发现,此问题的基例是当n=0与n=1的情况,
剩下的全部递归,数自身乘以前面的数,调用函数本身,n*fact(n-1)。
可以先定义一个变量n,n=int(input()),这样程序运行时,可以输入任意符合条件的数值。
3.实验结果