#include
int fact(static int ,int,static int);
void main(void)
{
int n;
scanf_s("%d", &n);
printf("%d\n",fact(1,n,1));
}
int fact(static int i,int n,static int m)
{
m = m*i;
i = i + 1;
if (i != n + 1)
fact(i, n, m);
return m;
}
静态局部变量只会初始化一次,直接在函数中声明就行了,不需要作为参数传递。