写点什么

【牛客刷题 - 算法】3- 第一篇 - 斐波拉契数列 -C 实现

作者:清风莫追
  • 2022 年 10 月 02 日
    湖南
  • 本文字数:717 字

    阅读完需:约 2 分钟

🚩 前言

🚀 博主主页:清风莫追


牛客网是一款挺好用的刷题神器,给大家推荐一下:


🚀 网站链接:牛客网


该系列博文作为刷题的笔记,记录个人面对一些编程题时的思考过程。如有问题,欢迎讨论和指正!希望能和大家一起加油,一起成长!




@[toc]



问题描述


🚀 原题链接:斐波拉契数列

解题思路

观察一下fib(x)的表达式,比较容易发现,这道题非常适合使用函数的递归来解。因为它的表达式本身也是一个递归的形式。</br>如果对斐波拉契数列还不熟悉,可以试着将一些项列出来:1,1,2,3,5,8,13,21,34,55,89······</br>刚开始接触递归的时候,可能会莫名德就感觉它非常的难以理解,但其实没关系,多做一些题,自己多用几次,自然慢慢得就熟了。

算法过程:

对函数fib(n)传入的一个 x:1)判断 n 是否为 1 或 2 ,若是,则直接返回 12)若不是,则进入递归,先计算第 n 项的前两项(第 n-1 和第 n-2 项),然后将它们的作为值返回</br>在第二步中计算前两项时,又是一个 1)、2)两步的过程,这就构成了递归

核心代码实现:

注:这里只是核心代码的实现,作为一个完成主要算法任务的函数,并不是完整的可运行代码。在main函数中调用此函数,即可完成相应的算法任务。


int Fibonacci(int n ) {    // write code here    if(n == 1 || n == 2)        return 1;    return Fibonacci(n - 1) + Fibonacci(n - 2);}
复制代码


![在这里插入图片描述](https://img-blog.csdnimg.cn/85e8326ee5fd478f9d317c1f6e2aa783.png =300x)



小结

这个算法的实现还是非常简单的,当我们遇到一些更复杂的递归任务时,其实可以反过来参考一下曾经的简单程序,也许能够让自己的思路变得更加清晰。

结束语:

今天的分享就到这里啦,快来加入刷题大军叭!👉点击开始刷题学习👈


一起加油

发布于: 刚刚阅读数: 4
用户头像

清风莫追

关注

还未添加个人签名 2022.08.09 加入

编程一学生

评论

发布
暂无评论
【牛客刷题-算法】3-第一篇-斐波拉契数列-C实现_递归_清风莫追_InfoQ写作社区