//递归法
#include <stdlib.h>
long int f(int a) {
long int s;
if(a<0) {
printf("输入错误");
exit(EXIT_FAILURE);
}
else if(a==0||a==1) s=1;
else s=f(a-1)*a;
return s;
}
main() {
int a;
printf("请输入要求阶乘的数\n");
scanf("%d",&a);
long b=f(a) ;
printf("%d的阶乘等于%ld\n",a,b);
}
//for循环
main() {
long int a,b,m;
printf("输入要求阶乘的数\n");
scanf("%ld",&a);
if(a<0) {
printf("输入错误");
return 0;
}
else if(a==0||a==1) m=1;
else {
m=1;
for(b=2; b<=a; b++)
m=m*b;
}
printf("%ld的阶乘是%ld",a,m);
}