DP1 斐波那契数列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DP1 斐波那契数列相关的知识,希望对你有一定的参考价值。


描述
大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足 fib(x)=\\left \\beginarrayrcl 1 & x=1,2\\ fib(x-1)+fib(x-2) &x>2\\ \\endarray \\right.fib(x)=
1
fib(x−1)+fib(x−2)

x=1,2
x>2

的数列
数据范围:1\\leq n\\leq 401≤n≤40
要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n) ,本题也有时间复杂度 O(logn)O(logn) 的解法

输入描述:
仅输入一个正整数 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

#include<iostream>
#include<bits/stdc++.h>
#include<algorithm>
#include<string>
#include<stack>
using namespace std;
int f(int n)
if(n==1||n==2)
return 1;

int t1=f(n-1);
int t2=f(n-2);
return t1+t2;


int main()
int n;
cin>>n;
cout<<f(n);





以上是关于DP1 斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章

Go语言 斐波那契数列的解法

斐波那契系列问题的三种解法

[NowCoder]NC65 斐波那契数列

斐波那契数列递归解法与循环解法

双百解法剑指 Offer 10- I 斐波那契数列

10斐波那契数列