#3556. [GESP202512 五级 C++] 第 13 题

[GESP202512 五级 C++] 第 13 题

下面给出了阶乘计算的两种方式。以下说法正确的是( )。

int factorial1(int n) {
    if (n <= 1) return 1;
    return n * factorial1(n - 1);
}

int factorial2(int n) {
    int acc = 1;
    while (n > 1) {
        acc = n * acc;
        n = n - 1;
    }
    return acc;
}

{{ select(1) }}

  • 上面两种实现方式的时间复杂度相同,都为 O(n)O(n)
  • 上面两种实现方式的空间复杂度相同,都为 O(n)O(n)
  • 上面两种实现方式的空间复杂度相同,都为 O(1)O(1)
  • 函数 factorial1() 的时间复杂度为 O(2n)O(2^n),函数 factorial2() 的时间复杂度为 O(n)O(n)