斐波那契系列问题的递归和动态规划

本文探讨了如何使用递归和动态规划解决斐波那契数列问题,包括计算斐波那契数列的第N项、解决不同台阶的走法问题以及模拟农场母牛繁殖的问题。要求所有算法的时间复杂度为O(logN)。同时,提供了相关问题的代码实现。
摘要由CSDN通过智能技术生成

【题目】

给定整数N,返回斐波那契数列的第N项

【补充1】

给定整数N,代表台阶数,一次可以跨2个或者1个台阶,返回有多少种走法。

【举例】

N=3,可以三次都跨1个台阶;也可以先跨2个台阶,再跨1个;或者先跨1个,再跨2个。所以有三种走法,返回3.

【补充2】

假设农场中成熟的母牛每年只会生1头小母牛,并且永远不会死。第一年农场有1只成熟的母牛,从第二年开始,母牛开始生小母牛。每只小母牛3年之后成熟又可以生小母牛。给定整数N,求出N年后牛的数量。

【举例】

N=6,第1年1头成熟母牛记为a;
第2年a生了新的小母牛,记为b,总牛数为2;
第3年a生了新的小母牛,记为c,总数为3;
第4年a生了新牛d,总数4;
第5年b成熟了,ab分别生了一只,总数为6;
第6年c也成熟了,abc分别生了一只,总数为9,故返回9.

【要求】

对以上所有问题,时间复杂度为O(logN)

【代码】

public static void main(String[] args) {
        //原题目
        System.out.println(Fibonacci(5));//5
        System.out.println(Fibonacci2(5));//5
        System.out.println(Fibonacci3(5));//5
    } 

    //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值