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.实验结果

python 定义函数 python定义函数求n的阶乘_函数调用