栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【剑指offer-牛客网刷题】第一篇-斐波拉契数列-C实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【剑指offer-牛客网刷题】第一篇-斐波拉契数列-C实现

 前言

 博主主页:阿阿阿阿锋的主页_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);
}


小结

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

一起加油!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1037046.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号