趣学算法之斐波拉契数列实现

举报
chenyu 发表于 2021/07/27 00:05:50 2021/07/27
【摘要】 1、斐波拉契数列 f(1) = 1; f(2) = 1; f(3) = f(1) + f(2);以此内推 1 x = 1f(x) = 1 x = 2 f(x - 1) + f(x - 2) x >= 3     2、代码实现 #include <stdio.h>#include <st...

1、斐波拉契数列


   
  1. f(1) = 1; f(2) = 1; f(3) = f(1) + f(2);以此内推
  2. 1 x = 1
  3. f(x) = 1 x = 2
  4. f(x - 1) + f(x - 2) x >= 3

 
 


2、代码实现


   
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int fib1(int n)
  4. {
  5. if (n <= 0)
  6. return -1;
  7. else if (n == 1 || n == 2)
  8. return 1;
  9. else
  10. return fib1(n - 1) + fib1(n - 2);
  11. }
  12. int fib2(int n)
  13. {
  14. if (n <= 0)
  15. return -1;
  16. int *a = malloc(sizeof(int) * n); //开辟了一个数组
  17. a[1] = 1;
  18. a[2] = 1;
  19. for (int i = 3; i <= n; ++i)
  20. {
  21. a[i] = a[i - 1] + a[i - 2];
  22. }
  23. return a[n];
  24. }
  25. int fib3(int n)
  26. {
  27. if (n <= 0)
  28. return -1;
  29. int a1 = 1;

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/78948386

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。