美文网首页
斐波那契数列

斐波那契数列

作者: 垂直居中的句号 | 来源:发表于2021-05-06 16:20 被阅读0次

    古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    这个问题说的是一对兔子,最后兔子总数需不需要乘以2?
    我居然写的
    int sum=2
    for(int i=3;i<=n;i++){
    int a = i/3;
    sum=sum+2^a;}
    这样算得兔子(按只)的规律为 2,2,4,6,8;是错的
    优化:
    int sum=2
    for(int i=3;i<=n;i++){
    int a = i/3;
    int b=i%3;
    if(b==0){
    sum=sum+2^a;
    }else{
    sum=sum+2*b;
    }
    这样算得兔子(按只)的规律为 2,2,4,6,8;是错的

    image.png

    正确解法: 兔子的规律为数列1,1,2,3,5,8,13,21.... 从第3项开始为前2项之和
    public static int f(int i) {
    //前2个月为1
    if(i==1 || i==2) {
    return 1;
    }
    return f(i-1)+f(i-2);
    }

    相关文章

      网友评论

          本文标题:斐波那契数列

          本文链接:https://www.haomeiwen.com/subject/txsddltx.html