阶乘:
factorial(n)={1n<=0n∗factorial(n−1)n>0factorial(n)=\begin{cases} 1 & n<=0\\n*factorial(n-1) & n>0\end{cases}factorial(n)={1n∗factorial(n−1)n<=0n>0
用递归算法计算n的阶乘:
long factorial(int n)
{
if( n<=0 ) return 1;
else return n*factorial(n-1);
}
用迭代方法计算n的阶乘:
long factorial(int n)
{
int result = 1;
while( n>1 )
{
result *= n;
n -= 1;
}
return result;
}