第20650题 单选
下列关于两种阶乘计算实现方式的说法正确的是?

给出两种阶乘计算的C++实现如下:

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;
}
A

上面两种实现方式的时间复杂度相同,都为O(n)

B

上面两种实现方式的空间复杂度相同,都为O(n)

C

上面两种实现方式的空间复杂度相同,都为O(1)

D

函数 factorial1() 的时间复杂度为 O(2^n),函数 factorial2() 的时间复杂度为O(n)