#include <stdio.h>
/*
auther:新生代小码农
date:2021-09-15
Question:用递归方法求n!
Analyze:1!=1 2!=1!*2 3!=3!*3......n!=(n-1)!*n
n!=1(n=0||1) n!=(n-1)!*n(n>1)
*/
int fac(int m){
int a;
if(m==1||m==0){
a=1;
}else if(m>1){
a=fac(m-1)*m;
}else{
printf("输入错误,请正确输入");
}
return a;
}
int main(){
int n;
printf("Please enter n!");
scanf("%d",&n);
printf("%d的阶乘是:%d",n,fac(n));
return 0;
}
运行如下:
Please enter n!5
5的阶乘是:120
--------------------------------
Process exited with return value 0
Press any key to continue . . .