js 实现 创建函数,计算斐波那契数列的第n项,使用递归和普通函数两种方式

本文探讨了斐波那契数列的计算,通过递归和迭代两种方式实现了斐波那契数列的生成。递归方法直观但效率较低,而迭代方法虽然代码稍显复杂,但在计算大量数列时表现更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

function fn(n){
    if(n==1 || n==2){
        return 1;
    }else {
        return fn(n-1)+fn(n-2);
    }
}
var res=fn(50);
console.log(res);

方法二:
function fn2(n){
    var a=1,b=1,c=0;
    for(var i=1;i<=n;i++){
        if(n<=2){
            c=1;
        }else{    
            a=b;
            b=c;
            c=a+b;
        }
    }
    return c;
}
var res2=fn2(5);
console.log(res2);

递归是一种在函数自身中调用自身的编程技术,非常适合解决数学函数计算问题,如斐波那契数列阶乘。针对您的问题,以下是具体的递归函数实现方法: 参考资源链接:[信仰之跃与递归示例:理解斐波那契数列](https://wenku.youkuaiyun.com/doc/4nuav5xm27?spm=1055.2569.3001.10343) 1. 斐波那契数列递归函数实现斐波那契数列递归定义为:fib(n) = fib(n-1) + fib(n-2),其中fib(0)=0,fib(1)=1。 下面是计算斐波那契数列第n的Python函数代码: ```python def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2) ``` 在这个函数中,我们首先检查基本情况,即当n为0或1时,直接返回结果。对于其他情况,函数调用自身来计算前两,直到达到基本情况。 2. 阶乘函数递归实现: 阶乘函数定义为:n! = n * (n-1)!,其中0! = 1。 下面是计算整数n的阶乘的Python函数代码: ```python def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) ``` 在这个函数中,我们也设置了基本情况,即n为0时返回1。对于其他情况,函数调用自身来计算n乘以(n-1)的阶乘,递归地进行直到n为0。 在使用递归方法时,需要注意函数调用栈的限制。对于斐波那契数列,随着n的增加,计算效率会显著下降,因为相同的子问题会被重复计算多次。这种情况下,可以使用动态规划技术或者记忆化递归来优化性能。 了解了递归函数实现,建议进一步阅读《信仰之跃与递归示例:理解斐波那契数列》。这篇内容将帮助您更深入地理解递归的概念,以及如何在实际编程中应用它来解决问题。同时,您还可以了解到递归算法中的“信仰之跃”原理,即在编程中信任递归函数能够正确执行并返回预期结果。 参考资源链接:[信仰之跃与递归示例:理解斐波那契数列](https://wenku.youkuaiyun.com/doc/4nuav5xm27?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值