算法---第 N 个泰波那契数

文章讲述了如何使用动态规划方法解决求解给定整数n的泰波那契数问题,避免了递归中的重复计算,强调编程实践和提升编码能力的重要性。

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

题目

泰波那契序列 Tn 定义如下:

T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2

给你整数 n,请返回第 n 个泰波那契数 Tn 的值。

示例 1:

输入:n = 4
输出:4
解释:
T_3 = 0 + 1 + 1 = 2
T_4 = 1 + 1 + 2 = 4
示例 2:

输入:n = 25
输出:1389537

提示:

0 <= n <= 37
答案保证是一个 32 位整数,即 answer <= 2^31 - 1。

解决思路

可以用递归,但是会有重复运算。
比较适合动态规划

解决方法

    fun tribonacci(n: Int): Int {
        var result: Int
        when (n) {
            0 -> {
                result = 0
            }

            1, 2 -> {
                result = 1
            }
            else -> {
                var t1 = 0
                var t2 = 1
                var t3 = 1
                var i = 3
                while (i <= n) {
                    result = t1 + t2 + t3
                    t1 = t2
                    t2 = t3
                    t3 = result
                    i++
                }
                result = t3
            }
        }

        return result
    }

总结

1.这么简单的题也没有一遍过,说明编码能力,编码思路还可以继续提升
2.事非经过不知难 要动手,不动手就觉得什么都容易

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值