编写个求整数的阶乘并将其返回的程序,填空题

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:48:34
3. 编写函数,求一个整数的阶乘并将结果返回。
long fac(int n)
{
long temp;
temp=n;

return(temp);
}

中间那里该怎么写啊?

if(n==0||n==1)
temp=1;
else temp=n*fac(n-1);

阶乘结果超大,long也只能算到16!,所以不要输入大于16的数!
调用实例
#include <stdio.h>
long fac(int n)
{
long temp;
temp=n;
if(n==0||n==1)
temp=1;
else temp=n*fac(n-1);
return(temp);
}
main(){
long int x,y;
scanf("%ld",&x);
y=fac(x);
printf("%ld",y);
}