阶乘函数的递归实现:
#include <stdio.h>
#include <stdlib.h>
int f(int n)
{
int y;
if(n==0)y=1;
else
{
y=n*f(n-1);
}
return y;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",f(n));
return 0;
}
非递归实现,用循环:
#include <stdio.h>
#include <stdlib.h>
int f(int n)
{
int y=1;
int i;
for(i=1; i<=n; i++)
y=y*i;
return y;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",f(n));
return 0;
}