赞
踩
题目来源于力扣——1137. 第 N 个泰波那契数 - 力扣(LeetCode) (leetcode-cn.com)
泰波那契序列 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
根据题目我们可知,要求出第n个泰波数的值,我们只需要知道其前三项的值。
题目已经给出了这个数列第一项和第二项和第三项的值了,所以我们可以求出后面所有的值
代码如下:
- #include<stdio.h>
- int fib(int n)
- {
- int a = 0; //为数列第一项赋值
- int b = 1; //为数列第二项赋值
- int c = 1; //为数列第三项赋值
- int d = 0; //求数列第一项、第二项、第三项的和
- if (n == 0) {
- return 0;
- }
- if (n <= 2) {
- return 1;
- }
- while (n > 2)
- {
- d = a + b + c;
- a = b;
- b = c;
- c = d;
- n--;
- }
- return d;
-
- }
- int main()
- {
- int n = 0;
- scanf("%d",&n);
- int ret = fib(n);
- printf("%d", ret);
- return 0;
- }
其实这题跟求斐波那契数列的第n个数的方法是一模一样的,只不过斐波那契数列要知道前两项的值,如果大家对这题还有疑惑,可以去我的主页看一下详细的斐波那契数列的求法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。