题解 | #计算一个数的阶乘#

计算一个数的阶乘

http://www.nowcoder.com/practice/b0423a89826c4d68a3e8b9832a6a1f49

题意整理。

  • 键盘输入一个正整数n。
  • 输出n的阶乘。

方法一(循环)

1.解题思路

  • 采用循环逆序遍历1-n之间所有的数。
  • 每轮循环中,将对应的数乘到factorial,最后再输出factorial。

动图展示: alt

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次,所以时间复杂度为O(n)O(n)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论

相关推荐

努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
M_bao:换个排版吧哥们,看着费劲
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务