循环
#include <stdio.h>
void factorial(int n);
int main(){
int n;
printf("请输入n: ");
scanf("%d", &n);
factorial(n);
return 0;
}
void factorial(int n){
int i;
float result = n;
if(n > 1) {
for(i = n; i > 1; i--){
result = result * (i - 1);
}
printf("阶乘为: %.f \n", result);
}
else{
printf("阶乘为: 1");
}
}
递归
#include <stdio.h>
double factorial(int n);
int main(void)
{
int n;
printf("请输入 n:");
scanf("%d",&n);
printf("%.0lf\n",factorial(n));
}
double factorial(int n)
{
if(n==0||n==1)
return 1;
else
return n*factorial(n-1);
}