当前位置:网站首页>【剑指offer-牛客网刷题】第一篇-斐波拉契数列-C实现
【剑指offer-牛客网刷题】第一篇-斐波拉契数列-C实现
2022-08-11 11:44:00 【阿阿阿阿锋】

前言
博主主页:阿阿阿阿锋的主页_CSDN
牛客网是一款挺好用的刷题神器,给大家推荐一下:
网站链接:牛客网
该系列博文作为刷题的笔记,记录个人面对一些编程题时的思考过程。如有问题,欢迎讨论和指正!希望能和大家一起加油,一起成长!
问题描述

原题链接:斐波拉契数列
解题思路
观察一下
fib(x)的表达式,比较容易发现,这道题非常适合使用函数的递归来解。因为它的表达式本身也是一个递归的形式。
如果对斐波拉契数列还不熟悉,可以试着将一些项列出来:1,1,2,3,5,8,13,21,34,55,89······
刚开始接触递归的时候,可能会莫名德就感觉它非常的难以理解,但其实没关系,多做一些题,自己多用几次,自然慢慢得就熟了。
算法过程:
对函数
fib(n)传入的一个x:
1)判断n是否为 1 或 2 ,若是,则直接返回 1
2)若不是,则进入递归,先计算第 n 项的前两项(第 n-1 和第 n-2 项),然后将它们的和作为值返回
在第二步中计算前两项时,又是一个1)、2)两步的过程,这就构成了递归
核心代码实现:
注:这里只是核心代码的实现,作为一个完成主要算法任务的函数,并不是完整的可运行代码。在main函数中调用此函数,即可完成相应的算法任务。
int Fibonacci(int n ) {
// write code here
if(n == 1 || n == 2)
return 1;
return Fibonacci(n - 1) + Fibonacci(n - 2);
}

小结
这个算法的实现还是非常简单的,当我们遇到一些更复杂的递归任务时,其实可以反过来参考一下曾经的简单程序,也许能够让自己的思路变得更加清晰。
一起加油!
边栏推荐
猜你喜欢
随机推荐
如何设计一组会出现死锁(Deadlock)的ABAP程序
分布式时间槽elastic timeslot架构设计
d包含区间
elemntUI限制时间选择器不能跨月并且不大于未来时间
好的架构是进化来的,不是设计来的
鸿海董事长刘扬伟:市场对智能手机和其他消费电子产品的需求正在放缓
基于数据库实现通用异步缓存系统
【学生毕业设计】基于web学生信息管理系统网站的设计与实现(13个页面)
集合面试题
vending machine
openEuler小程序会议指南
云原生(三十四) | Kubernetes篇之平台存储系统实战
The old saying: The interview must ask "Three handshakes, four waves", so you can't forget it
pgr_createTopology
Through the thermal lens focus on different types of gaussian model
pip安装后仍有ImportError No module named XX问题解决
闪灯芯片银行塔闪灯IC参数应用
【黑马早报】抖音否认与头部主播签对赌协议;阿迪达斯CEO承认在中国犯了错;网易云社交App心遇被指涉黄;联通董事长称5G资费比点外卖还便宜
FS2956A 输入8-120V 用于液晶仪表5V-USB 充电口方案
class 继承的重点









