这个求组合数的程序里的fact函数,最后一部分 int i,int p······return p 这一部分是什么意思啊,有没有大神给小白讲下

#include
#include
int fact (int n);
int main ()
{
int m,k;
scanf("%d %d",&k,&m);
printf("%d",fact(m)/(fact(k)*fact(m-k)));
}
int fact(int n)
{

    int i;
    int p;
    i=(int)n;
    p=1;
    for(;i>=1;i--)
    {
        p=i*p;
    }return p;
}

fact是计算阶乘 p=i*(i-1)*(i-2)...*1,而i=n
其实反过来就是n!=1*2*3*...*n,故弄玄虚。
这里套用了组合数的公式
图片说明

问题解决请点个采纳

int i 和int p创造一个整数变量i和p 下面for循环中用到的

return p 就是函数fact运行结束之后返回了一个p 也就是你运行这个函数之后会得到的东西