【NICN】探索牛客之求阶乘

【NICN】探索牛客之求阶乘_第1张图片

1.题目描述

递归和非递归分别实现求n的阶乘(不考虑溢出的问题)

2.代码解题

2.1递归

递归思想:

Fac(N) = 1*2*3*……*N


递归方式实现:
        1    N <= 1
Fac(N)
        Fac(N-1)*N    N >= 2
long long Fac(int N)
{
    if(N <= 1)
        return 1;
    
    return Fac(N-1)*N;
}

 

2.2非递归 

循环方式:从1乘到N即可
long long Fac(int N)
{
    long long ret = 1;
    for(int i = 2; i <= N; ++i)
    {
        ret *= i;
    }
    
    return ret;
}

 

你可能感兴趣的:(算法,数据结构,线性代数,动态规划,c语言,开发语言)