简单有趣的入门算法题【持续更新】

斐波那契数列

斐波那契数列是展示递归和迭代两种编程思想的经典案例。递归实现简洁直观,但可能存在效率问题;迭代实现则更高效,适合处理大规模数据。应用代码中的落地场景例如算法、加密、模型计算等。

public class Fibonacci {
    public static int fib(int n) {
        if (n <= 1) {
            return n;
        }
        return fib(n - 1) + fib(n - 2);
    }

    public static void main(String[] args) {
        int n = 8;
        int s = 9;
        System.out.println("Fibonacci number at position " + n + " is: " + fib(n));
       System.out.println("Fibonacci number at position " + s + " is: " + fib(s));
    }
}

手动计算斐波那契数列

F(0)=0
F(1)=1
F(2)=F(1)+F(0)=1+0=1
F(3)=F(2)+F(1)=1+1=2
F(4)=F(3)+F(2)=2+1=3
F(5)=F(4)+F(3)=3+2=5
F(6)=F(5)+F(4)=5+3=8
F(7)=F(6)+F(5)=8+5=13
F(8)=F(7)+F(6)=13+8=21
F(9)=F(8)+F(7)=21+13=34

当你调用 fib(9) 时,按照递归逻辑,会展开为 fib(8) + fib(7)。然后,fib(8) 和 fib(7) 又会各自继续递归展开,直到达到递归终止条件(即 n <= 1)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boJIke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值