题解 | #计算一个数的阶乘#
计算一个数的阶乘
http://www.nowcoder.com/practice/b0423a89826c4d68a3e8b9832a6a1f49
#include <iostream>
using namespace std;
long long factor(int n)
{
if( n == 1)
return n;
return n*factor(n-1);
}
int main() {
int n;
cin >> n;
long long factorial = 1;
// 方法一:递归算法
//时间复杂度:需要递归n次,所以时间复杂度为O(n)
//空间复杂度:o(1)
factorial = factor(n);
//方法二:迭代法
//时间复杂度:循环需要执行n次,所以时间复杂度为O(n)
//空间复杂度:o(1)
for(int i = n;i>=1;i--)
{
factorial *= i;
}
cout << factorial << endl;
return 0;
}