1.题目描述
递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
2.代码解题
2.1递归
递归思想:
Fac(N) = 1*2*3*……*N递归方式实现:1 N <= 1 Fac(N)Fac(N-1)*N N >= 2
long long Fac(int N)
{if(N <= 1)return 1;return Fac(N-1)*N;
}
2.2非递归
循环方式:从1乘到N即可
long long Fac(int N)
{long long ret = 1;for(int i = 2; i <= N; ++i){ret *= i;}return ret;
}