非递归
#includelong jiecheng(int n) { int t=1; if(n<0) return -1; else if(n==0) return 1; else{ for( int i=1;i<=n;i++) t=t*i; return t; } } int main() { int n; scanf("%d",&n); int s=jiecheng(n); printf("%d的阶乘为%ldn",n,s); return 0; }
递归:
#includelong jiecheng(int n) { if(n==0||n==1) return 1; else return n*jiecheng(n-1); } int main() { int n; scanf("%d",&n); int t; t=jiecheng(n); printf("%d的阶乘为%dn",n,t); return 0; }



