斐波那契数列(C++)
斐波那契数列
描述
大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足
的数列。
数据范围:1≤n≤40
要求:空间复杂度 O(1),时间复杂度 O(n) ,本题也有时间复杂度 O(logn) 的解法
示例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
思路/解法
方式一
递归求解。
class Solution {public:int Fibonacci(int n) {if(n == 1 || n == 2)return 1;return Fibonacci(n-1) + Fibonacci(n-2);}
};
方式二
使用数组求解。
class Solution {public:int Fibonacci(int n) {vector<int> arr(n);arr[0] = 1;arr[1] = 1;for(int i = 2;i < n;i++)arr[i] = arr[i-1] + arr[i-2];return arr[n-1];}
};
方式三
不使用数组这类额外空间求解。
class Solution {public:int Fibonacci(int n) {if(n == 1 || n == 2)return 1;int a = 1;int b = 1;int c = a + b;for(int i = 3;i < n;i++){a = b;b = c;c = a + b;}return c;}
};
斐波那契数列(C++)相关推荐
- java 斐波拉_Java实现斐波那契数列
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&g ...
- 剑指offer:面试题10- I. 斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 ...
- 用递归法计算斐波那契数列的第n项
斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...
- 循环斐波那契数列_剑指offer #10 斐波那契数列
(递归和循环)#10 斐波那契数列 一.斐波那契数列 定义: n = 0 , f(n) = 0 n = 1 , f(n) = 1 n > 1 , f(n) = f(n-1) + f(n-2) 思 ...
- 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?
自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...
- 算法(1)斐波那契数列
1.0 问题描述 实现斐波那契数列,求第N项的值 2.0 问题分析 斐波那契数列最简单的方法是使用递归,递归和查表法同时使用,可以降低复杂度. 根据数列特点,同时进行计算的数值其实只有3个,所以可以使 ...
- NOIP模拟题 斐波那契数列
题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...
- 剑指offer_第7题_斐波那契数列
题目描述 现在要求输入一个整数n 输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 理解 斐波那契数列 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...
- 面试官问你斐波那契数列的时候不要高兴得太早
增加内容 递归改进版 矩阵快速幂解法 通项表达式解法 列表法 斐波那契数列应用 前言 假如面试官让你编写求斐波那契数列的代码时,是不是心中暗喜?不就是递归么,早就会了.如果真这么想,那就危险了. 递归 ...
- 斐波那契数列性质【记住】
斐波那契数列 斐波那契数列递推 F(1)=1,F(0)=0F(1)=1,F(0)=0F(1)=1,F(0)=0 F(n)=F(n−1)+F(n−2)F(n)=F(n-1)+F(n-2)F(n)=F(n ...
最新文章
- 【怎样写代码】确保对象的唯一性 -- 单例模式(一):问题案例
- 英国拟在其国内建立一套互联网过滤网
- mysql行级安全_MySQL学习笔记(五):MySQL表级锁和行级锁
- html flash 循环播放,在网页中插入flv格式的flash视频怎么让其循环播放_html/css_WEB-ITnose...
- js时间选择器_Vuestic Admin一款免费与美妙基于Vue.js开发的管理模板
- 重磅!谷歌大脑提出EfficientNet平衡模型扩展三个维度,取得精度-效率的最大化!...
- 对于GetMemory()函数
- .NetCore中的程序通过Docker在CentOS中部署
- Gambit 5.调试
- HTML制作简易个人简历(表单)
- oracle查询同一天生日的,关于date生日判断的问题
- matplotlib报错Line2D‘ object has no property ‘linestyle‘或‘linewidth‘
- [Maven实战-许晓斌]-[第二章]-2.3安装目录分析
- 微信小程序保存图片到手机相册(封装全局使用)
- Nodejs框架+uniapp前端微商个人相册多端小程序
- 大话西游2同一个账号同一个服务器,大话西游2:服务器合并你是否支持?老玩家告诉你合服后的影响!...
- java程序连接MinIO 报错The request signature we calculated does not match the signature you provided.
- How to evaluate and motivate a speech
- 23种设计模式——UML类图+简要分析+例题
- Vivado Digilent IP核