第1个回答 2011-07-31
unsigned int Jiechen(unsigned int n)
{
if(n==0) return 1; /* 0 的阶乘等于 1, 直接返回 1 */
else return n * jiechen(n-1); /* 否则 n! = n * (n-1)! 此处是递归调用函数 Jiechen() */
}本回答被网友采纳
第2个回答 2011-08-01
#include<stdio.h>
int fun(int n)
{
if(n==1||n==0) return 1; //0!=1,1!=1。
else return n*fun(n-1); //n!=n*(n-1)!。
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n)); //输出n的阶乘。
return 0;
}
第3个回答 2012-03-03
#include<stdio.h>
#include<stdlib.h>
long rfact(int n)
{
if(n<0)
{
printf("Negative argument to fact!\n");
exit(-1);
}
else if(n<=1)
return (1);
else
return(n*rfact(n-1));
}
int main(void)
{int x,s ;
printf("enter a number:");
scanf("%d",&x);
s=long rfact(x);
printf("answer is:%d",s);
return 0;
}
第4个回答 2012-12-10
#include<stdio.h>
int func(int n);
void main()
{
int n,t;
printf("请输入阶乘n的值:");
scanf("%d!",&n);
t=func(n);
printf("%d!=%d\n",n,t);
}
int func(int n)
{
int s;
if(n<0){
printf("n<0,输入数据错误!");
} else if(n==1||n==0){
s=1;
}else{
s=n*func(n-1);
}
return(s);
}