【C | recursion 】 【阶乘问题】n!

74 阅读1分钟

阶乘

【阶乘】n!

递归


int sum(int n) {
//    int sum = 1;
    if (0 == n | 1 == n) {
//        sum *= 1;
        return 1;
    }

//    sum *= n * sum(n - 1);
    return n * sum(n - 1);
}

int main() {
 
    return 0;
}

非递归

循环

int sum2(int n) {
    int sum = 1;
    for (int i = 1; i <= n; ++i) {
        sum *= i;
    }
    return sum;
}

迭代

int factorial(int n)
{
    int fact = 1; 
    while (n > 1) 
    { 
        fact *= n; 
        n--;
    } 
    return fact; 
}