用逆推方法求n!,从1开始一直乘到n
#include <stdio.h>
void main()
{
//system("mode con cp select=65001");
long fac(int n);
int n;
long fact=0;
printf("请输入n的值:");
scanf("%d",&n);
fact=fac(n);
printf("%d!=%d\n",n,fact);
}
long fac(int n){
int i;
long fact=1;
for(i=1;i<=n;i++){
fact=fact*i;
}
return fact;
}
用递归的方法求n!
n=0,1时,n!=1
n>1时,n!=n*(n-1)!
#include <stdio.h>
void main()
{
//system("mode con cp select=65001");
long fac(int n);
int n,y;
long fact=0;
printf("请输入n的值:");
scanf("%d",&n);
y=fac(n);
printf("%d!=%d\n",n,y);
}
long fac(int n){
long f;
if(n<0){
printf("n<0,data error!");
}else if(n==0 || n==1){
f=1;
}else{
f=fac(n-1)*n;
}
return(f);
}