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;
}