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

简介: 题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
/*
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;
}
 
 
/*
循环方式:从1乘到N即可
*/
long long Fac(int N)
{
    long long ret = 1;
    for(int i = 2; i <= N; ++i)
    {
        ret *= i;
    }
    
    return ret;
}
 


目录
相关文章
|
7月前
|
算法
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
|
7月前
递归阶乘详解
递归阶乘详解
73 1
|
7月前
|
C语言
递归求阶乘
【1月更文挑战第18天】C语言实例——递归求阶乘。
39 1
|
7月前
|
算法 C语言
C语言汉诺塔数列(循环版,递归版)
C语言汉诺塔数列(循环版,递归版)
87 0
|
7月前
函数递归详解----跳台阶、斐波那契数列、汉诺塔问题
递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。递归中的递就是递推的意思,归就是回归的意思。
|
编译器
位运算、递推与递归
位运算、递推与递归
50 0
c/c++求两个数的最大公约数(递归版)
c/c++求两个数的最大公约数(递归版)
202 0
递归和非递归分别实现求第n个斐波那契数
递归和非递归分别实现求第n个斐波那契数
73 0
剑指offer_递归与循环---斐波那契数列
剑指offer_递归与循环---斐波那契数列
73 0