首页 > 试题广场 >

斐波那契数列

[编程题]斐波那契数列
  • 热度指数:15454 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 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
头像 数据结构和算法
发表于 2022-02-18 18:15:30
解法一 题中要求的是 空间复杂度 O(1) ,很明显使用递归是行不通的,我们先改成非递归的看一下(这种复杂度也是不行的,我们先看一下代码) import java.util.Scanner; public class Main { public static void main(Stri 展开全文
头像 <三月灯火>
发表于 2022-03-13 10:31:19
#include<bits/stdc++.h> using namespace std; int n,a=0,b=1,c;//a如果不设置为0的话循环n次会导致第二位输出第一位, //第三位输出第二位,以此类推。 int main() { scanf("%d",& 展开全文
头像 牛客876865650号
发表于 2022-02-24 21:15:27
n =int(input()) dp = [1,1] def fibonaci(a,b): return a+b if n==1 or n==2: print('1') else: for i in range(n-2): dp.append(fibonaci(dp[i], dp[i+1])) pr 展开全文
头像 KEY.L
发表于 2022-07-03 20:22:33
首先来看看题目的要求:空间复杂度 O(1),时间复杂度 O(n) ,本题也有时间复杂度 O(logn)的解法~~~ 那么首先回忆一下斐波那契数列,作为dp的入门题,斐波那契作为数学和许多书中的动归入门题 相信递归的方程式对于大家而言并不难 就 展开全文
头像 牛客HFL
发表于 2023-08-17 17:09:18
#include<bits/stdc++.h> using namespace std; int main() { int a=1,b=1,c=1,n; cin>>n; for(int i=3;i<=n;i++) { c= 展开全文
头像 Light桓
发表于 2022-05-11 14:11:55
动态规划方法 #include <bits/stdc++.h> using namespace std; int fb(int n); int main (){ int n; cin >> n; cout << fb(n); } int 展开全文
头像 爱交友的放鸽子能手在度假
发表于 2023-02-19 16:51:46
n = int(input()) a_list = [1, 1] if n == 1 and n == 2: print(n) else: for i in range(3, n+1): a_list.append(a_list[i-2]+a_list[i-3]) 展开全文
头像 爱交友的放鸽子能手在度假
发表于 2023-02-19 17:11:57
n = int(input()) a_list = [1, 1] if n == 1 or n == 2: print(a_list[n - 1]) else: for i in range(3, n + 1): a_list.append(a_list[i - 2] 展开全文
头像 向光而行的你很犹豫
发表于 2023-05-02 10:23:08
#include<iostream> using namespace std; int f(int n){ if(n==1||n==2)return 1; return f(n-1)+f(n-2); } int main(){ int n; cin> 展开全文
头像 lovehurts
发表于 2022-02-17 00:08:16
public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int num = in.nextInt(); 展开全文