题意整理。
- 键盘输入一个正整数n。
- 输出n的阶乘。
方法一(循环)
1.解题思路
- 采用循环逆序遍历1-n之间所有的数。
- 每轮循环中,将对应的数乘到factorial,最后再输出factorial。
动图展示:
2.代码实现
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
long long factorial = 1;
//从n遍历到1
for(int i=n;i>=1;i--){
//将对应的数乘到factorial
factorial*=i;
}
cout << factorial << endl;
return 0;
}
3.复杂度分析
- 时间复杂度:循环需要执行n次,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。