首页 > 试题广场 >

斐波那契数列

[编程题]斐波那契数列
  • 热度指数:1271139 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足 的数列
数据范围:
要求:空间复杂度 ,时间复杂度 ,本题也有时间复杂度 的解法


输入描述:
一个正整数n


输出描述:
输出一个正整数。
示例1

输入

4

输出

3

说明

根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。   
示例2

输入

1

输出

1
示例3

输入

2

输出

1
头像 牛客题解官
发表于 2020-05-29 14:52:05
精华题解 #描述 此题是非常经典的入门题了。我记得第一次遇到此题是在课堂上,老师拿来讲“递归”的(哈哈哈)。同样的类型的题还有兔子繁殖的问题。大同小异。此题将用三个方法来解决,从入门到会做。 考察知识:递归,记忆化搜索,动态规划和动态规划的空间优化。 难度:一星 #题解 ###方法一:递归 题目分析,斐波那契 展开全文
头像 不是江小白
发表于 2021-07-16 21:28:29
精华题解 1. 解题思路一 这道题如果很熟悉斐波拉契数列的定义(即 f(n)=f(n-1)+f(n−2)) ,那么用递归是最易懂的方法。但是递归的时间复杂度达到O(),且空间复杂度也有O(n);所以这并不是最优解。因此,很多朋友提到了动态规划的解法,可是很少有朋友解释为何可以用动态规划来解决?,下面,掌柜就从 展开全文
头像 Maokt
发表于 2021-07-14 17:43:01
精华题解 算法思想一:迭代 解题思路: 算法流程: 1、当 n < 2时,直接返回 n 2、设置两个变量 one = 1, two = 0 3、循环     1、计算前两个数字之和 FN     2、将前两个数字更新&nb 展开全文
头像 牛客题解官
发表于 2022-04-22 12:35:02
精华题解 题目主要信息 斐波那契数列公式为:F(n)=F(n−1)+F(n−2)F(n)=F(n-1)+F(n-2)F(n)=F(n−1)+F(n−2) 初始化第1项和第2项为1 求该数列第n项 举一反三: 学习完本题的思路你可以解决如下题目: BM63.跳台阶 BM64.最小花费爬楼梯 BM69.把数字 展开全文
头像 漫漫云天自翱翔
发表于 2021-06-23 09:29:54
精华题解 什么是斐波拉契数列由题意与斐波拉契数列定义:已知f(n)=f(n-1)+f(n-2),f(0)=0,f(1)=1,求f(n)。题解一:记忆化搜索图示如下:根据思路我们可以实现递归代码: class Solution { public: int Fibonacci(int n) { 展开全文
头像 牛客313925129号
发表于 2021-07-14 16:51:58
精华题解 方法一 递归已知斐波那契数列的公式为f(n)=f(n-1)+f(n-2)。要求f(n)就需要知道f(n-1)和f(n-2),而求f(n-1)需要f(n-2)和f(n-3),依次推导,直到题目给出的边界{f(0)=0,f(1)=1}。图解如下:具体代码如下: class Solution { publ 展开全文
头像 未来0116
发表于 2021-06-18 14:32:18
精华题解 一.题目描述对于斐波那契数列的介绍:斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学 展开全文
头像 叫我皮卡丘
发表于 2019-08-09 21:27:12
【剑指offer】斐波那契数列 --Java实现 1. 递归法 1. 分析 斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)根据公式可以直接写出: 2. 代码 public class Solution { public 展开全文
头像 云201908071251114
发表于 2019-08-27 11:02:07
最简洁的实现方式,避免递归造成的调用栈消耗。 class Solution { public: int Fibonacci(int n) { int a = 0; int b = 1; while(n-->0){ 展开全文
头像 Veggie
发表于 2020-02-26 12:09:17
题目来源:牛客网-剑指Offer专题题目地址:斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 题目解析 方法一:普通递归版求法,这种方法通常和汉诺塔一起被放在课本的递归教学部分,应该是面试官不希望看到的 展开全文
头像 郭家兴0624
发表于 2019-08-09 22:25:35
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 def Fibonacci(self, n): # write code here res=[0,1,1,2] while len(res)< 展开全文
头像 Oh~Sunny
发表于 2020-01-02 20:18:14
class Solution: def Fibonacci(self, n): # write code here if n == 0: return 0 if n == 1: return 1 展开全文
头像 美子201907141638983
发表于 2022-05-12 23:47:10
1、暴力递归 const fib = (n) =>{      if(n=== 1 || n===2)return 1;     展开全文
头像 王清楚
发表于 2020-04-26 15:49:48
题面描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39 斐波哪契数列 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后有多少对兔子?我们可以把这些兔子的数 展开全文
头像 道阻且长z
发表于 2019-09-07 00:17:23
思路: 斐波那契数列:0,1,1,2,3,5...F(n-2),F(n-1),F(n)=F(n-2)+F(n-1) 递归 用数组来保存fibonacci数列,然后根据输入的n返回数组下标为n处的值。 根据斐波那契数列的公式,可以用3个变量来表示(也可以只用两个变量) 答案: 1.递归 publi 展开全文
头像 橙子爱吃桃子
发表于 2020-04-24 11:33:19
C++/代码: class Solution { public: int Fibonacci(int n) { int a = 0,b = 1; //第0项为0.第1项为1 while(n --) { //先执行后减 int c = a 展开全文
头像 数据结构和算法
发表于 2021-04-02 13:50:14
1,递归解决 这题非常简单,我们直接按照公式来就可以了F(n) = F(n - 1) + F(n - 2),但要做好边界条件的判断F(0) = 0,F(1) = 1 public int Fibonacci(int n) { if (n < 2) 展开全文