💢欢迎来到张胤尘的技术站
💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥
文章目录
- 算法每日一练 (15)
- 第 N 个泰波那契数
- 题目描述
- 解题思路
- 解题代码
- `c/c++`
- `golang`
- `lua`
官方站点: 力扣 Leetcode
算法每日一练 (15)
第 N 个泰波那契数
题目地址:第 N 个泰波那契数
题目描述
泰波那契序列定义如下:
T 0 = 0 , T 1 = 1 , T 2 = 1 且在 n > = 0 的条件下: T n + 3 = T n + T n + 1 + T n + 2 T_0 = 0, T_1 = 1, T_2 = 1\\ 且在 n >= 0 的条件下:T_{n+3} = T_n + T_{n+1} + T_{n+2} 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
。
解题思路
- 首先根据题意判断边界条件,当
n == 0
时直接返回 0,当n == 1
或者n == 2
时直接返回 1。 - 由于 从第三项元素开始,每一项数字都是前面三项数字的和,所以创建了四个辅助变量:
a
、b
、c
、d
:a
:第一项元素值。b
:第二项元素值。c
:第三项元素值。d
:前三项元素值的和。
- 紧接着,从第四项开始遍历到结束
n
即可,在循环中不断的更新a
、b
、c
、d
的值。 - 最后
d
的值就是满足题意的结果。直接返回d
的值即可。
解题代码
c/c++
class Solution
{
public:int tribonacci(int n){if (!n)return n;if (n == 1 || n == 2)return 1;int a = 0, b = 1, c = 1, d = 2;for (int i = 4; i <= n; i++){a = b;b = c;c = d;d = a + b + c;}return d;}
};
golang
func tribonacci(n int) int {if n == 0 {return 0}if n == 1 || n == 2 {return 1}a, b, c, d := 0, 1, 1, 2for i := 4; i <= n; i++ {a, b, c = b, c, dd = a + b + c}return d
}
lua
local function tribonacci(n)if n == 0 thenreturn 0endif n == 1 or n == 2 thenreturn 1endlocal a, b, c, d = 0, 1, 1, 2for i = 4, n doa, b, c = b, c, dd = a + b + cendreturn d
end
🌺🌺🌺撒花!
如果本文对你有帮助,就点关注或者留个👍
如果您有任何技术问题或者需要更多其他的内容,请随时向我提问。