当前位置:   article > 正文

每日一题——力扣——第 N 个泰波那契数_c语言问题描述:泰波那契序列 tn 定义如下:to = 0,t1 = 1,t2=1,且在n>=0的条

c语言问题描述:泰波那契序列 tn 定义如下:to = 0,t1 = 1,t2=1,且在n>=0的条件

题目来源于力扣——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个泰波数的值,我们只需要知道其前三项的值。

题目已经给出了这个数列第一项和第二项和第三项的值了,所以我们可以求出后面所有的值

代码如下:

  1. #include<stdio.h>
  2. int fib(int n)
  3. {
  4. int a = 0; //为数列第一项赋值
  5. int b = 1; //为数列第二项赋值
  6. int c = 1; //为数列第三项赋值
  7. int d = 0; //求数列第一项、第二项、第三项的和
  8. if (n == 0) {
  9. return 0;
  10. }
  11. if (n <= 2) {
  12. return 1;
  13. }
  14. while (n > 2)
  15. {
  16. d = a + b + c;
  17. a = b;
  18. b = c;
  19. c = d;
  20. n--;
  21. }
  22. return d;
  23. }
  24. int main()
  25. {
  26. int n = 0;
  27. scanf("%d",&n);
  28. int ret = fib(n);
  29. printf("%d", ret);
  30. return 0;
  31. }

其实这题跟求斐波那契数列的第n个数的方法是一模一样的,只不过斐波那契数列要知道前两项的值,如果大家对这题还有疑惑,可以去我的主页看一下详细的斐波那契数列的求法

求斐波那契数列第n项_爱编程的晖哥的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/948601
推荐阅读
相关标签
  

闽ICP备14008679号