斐波那契数列

题目描述:

悲波那契数列(Fibonacci sequence)又称黄金分割数列,因数学家莱昂纳多·裴波那契(LeonardodaFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。指的是这样一个数列:0、1、1、2、3、5、8、13、21、34...

在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,F(n)= F(n -1)+F(n-2)(n>2,nEN*)

请求出该数列中第 n 个数字(n 从1开始计数)是多少。

输入样例

样例1输入
6 样例2输入
4 输出样例 样例1输出
8 样例2输出
3

运行限制:

1. 最大运行时间:1s
2. 最大运行内存:128M

思路分析

递推算法

1.首先找到各个相邻数据项之间的递推关系

2.递推关系避开了求通项公式的麻烦,尤其是对于那些难以或无法求解通项公式的题目

3.将复杂问题分解为若干步骤的简单运算;

4.一般来说,递推算法可以视为一种特殊的迭代算法。

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
// 0 1 1 2 3 5 8 13 21 34....
int a = 0; //第一个数
int b = 1; //第二个数
int c = 0; //初始化,代表第三个及以后得数
for (int i=2;i<=n;i++){
c = a + b;
a = b;
b = c;
}
System.out.println(c);
}
}

递归算法

1.将复杂计算过程转换为简单重复子过程

2.找到递归公式,即能够将大问题转化为小问题的公式

3.自上而下计算,在返回完成递归过程。

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
// 0 1 1 2 3 5 8 13 21 34....
int c = 0; //初始化,第三个及以后的数
c = fun(n);
System.out.println(c);
}
static int fun(int n){
if (n == 0){
return 0;
}else if (n == 1){
return 1;
}else {
return fun(n-1) + fun(n-2);
}
}
}

斐波那契数列(Java实现)的更多相关文章

  1. 斐波那契数列-java编程:三种方法实现斐波那契数列

    题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...

  2. 斐波那契数列—java实现

    最近在面试的时候被问到了斐波那契数列,而且有不同的实现方式,就在这里记录一下. 定义 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

  3. 斐波那契数列—Java

    斐波那契数列想必大家都知道吧,如果不知道的话,我就再啰嗦一遍, 斐波那契数列为:1 2 3 5 8 13 ...,也就是除了第一项和第二项为1以外,对于第N项,有f(N)=f(N-1)+f(N-2). ...

  4. 剑指offer【07】- 斐波那契数列(java)

    题目:斐波那契数列 考点:递归和循环 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0),n<=39. 法一:递归法,不过递归比较慢, ...

  5. 斐波那契数列-java实现

    1,1,2,3,5,8,13,21...... 以上的数列叫斐波那契数列,今天的面试第一题,输出前50个,这里记录下. 方式一 package com.geenk.demo.my; /** * @au ...

  6. 07.斐波那契数列 Java

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 思路 递归 若n<=2;返回n; 否则,返回Fibonacci ...

  7. 《剑指offer》面试题9 斐波那契数列 Java版

    书中方法一:递归,这种方法效率不高,因为可能会有很多重复计算. public long calculate(int n){ if(n<=0){ return 0; } if(n == 1){ r ...

  8. 用HashMap优化斐波那契数列 java算法

    斐波那契是第一项为0,第二项为1,以后每一项是前面两项的和的数列. 源码:Fibonacci.java public class Fibonacci{ private static int times ...

  9. 斐波那契数列(Java实现)

    描述 一个斐波那契序列,F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2),根据n的值,计算斐波那契数F(n),其中0≤n≤1000. 输入 输入 ...

  10. 斐波那契数列 Java 不同的实现方法所需要的时间比较

    # 首先我们直接看一个demo以及他的结果 public class QQ { public static void main(String[] args) throws ParseException ...

随机推荐

  1. 七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用)

    七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用) @ 目录 七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用) ...

  2. 专题 求数列的前n项和

    \(\mathbf{{\large {\color{Red} {欢迎到学科网下载资料学习}} } }\)[[高分突破系列]高二数学下学期同步知识点剖析精品讲义! \(\mathbf{{\large { ...

  3. YashanDB发布会圆满收官,V23.1三大新品引领国产数据库技术与应用突破!

    11月8日,YashanDB 2023年度产品发布会在线上成功召开.本次产品发布会以"惟实·励新"为主题,宣布崖山数据库系统YashanDB 内核能力.产品形态.生态创新全面升级, ...

  4. JDBC后端实现登录的逻辑

    // 包名 package com.zhulx.JDBC; // 导入实例类 import com.zhulx.pojo.Account; import java.sql.Connection; im ...

  5. QToss:基于.NET架构的跨境电商的工具,助力企业实现智能数据营销

    2024年10月13日下午参加了一场在深圳举办的跨境电商大佬们的聚会,现场参加的人数上千人. 大会分享嘉宾中有位来自美国的,他告诉我们不用担心美国政府会把TikTok禁掉,TikTok在全世界都很受欢 ...

  6. 云原生周刊:K8s 1.26 到 1.29 版本的更新 | 2024.1.29

    开源项目推荐 Skaffold Skaffold 是一个命令行工具,有助于 Kubernetes 应用程序的持续开发.您可以在本地迭代应用程序源代码,然后部署到本地或远程 Kubernetes 集群. ...

  7. 使用idea搭建springBoot项目

    转载至:https://blog.csdn.net/baidu_39298625/article/details/98102453 整体步骤同上 分享其中遇到的坑 一.maven依赖 springBo ...

  8. 从围绕API到围绕数据-使用流式编程构建更简洁的架构

    背景 在服务刚刚搭建时,通常的思维就是根据API编写业务逻辑: // SendStream ... func (d *Svc) SendStream(stream MyApi_data.ProxyDi ...

  9. Ubuntu 22.04 全局快捷键失效问题

    安装完 Ubuntu 22.04 后,你有可能会发现系统的快捷键失效了.侧栏用 Win + x 选中程序不可用了.为各种应用程序设置的快捷键也不起作用了. 出现此现象的原因,是因为 Ubuntu 22 ...

  10. 为Markdown/HTML文档生成一个简易目录

    现在阅览文章的网页往往都带有一个目录,方便点击跳转.目录一般都是根据文档中的标题级别直接生成的. 现在我们也来模仿一个简单的,无非就是把<h1><h2>...的序列转化成树嘛 ...