斐波那契数列(Java实现)
斐波那契数列
题目描述:
悲波那契数列(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实现)的更多相关文章
- 斐波那契数列-java编程:三种方法实现斐波那契数列
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...
- 斐波那契数列—java实现
最近在面试的时候被问到了斐波那契数列,而且有不同的实现方式,就在这里记录一下. 定义 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
- 斐波那契数列—Java
斐波那契数列想必大家都知道吧,如果不知道的话,我就再啰嗦一遍, 斐波那契数列为:1 2 3 5 8 13 ...,也就是除了第一项和第二项为1以外,对于第N项,有f(N)=f(N-1)+f(N-2). ...
- 剑指offer【07】- 斐波那契数列(java)
题目:斐波那契数列 考点:递归和循环 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0),n<=39. 法一:递归法,不过递归比较慢, ...
- 斐波那契数列-java实现
1,1,2,3,5,8,13,21...... 以上的数列叫斐波那契数列,今天的面试第一题,输出前50个,这里记录下. 方式一 package com.geenk.demo.my; /** * @au ...
- 07.斐波那契数列 Java
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 思路 递归 若n<=2;返回n; 否则,返回Fibonacci ...
- 《剑指offer》面试题9 斐波那契数列 Java版
书中方法一:递归,这种方法效率不高,因为可能会有很多重复计算. public long calculate(int n){ if(n<=0){ return 0; } if(n == 1){ r ...
- 用HashMap优化斐波那契数列 java算法
斐波那契是第一项为0,第二项为1,以后每一项是前面两项的和的数列. 源码:Fibonacci.java public class Fibonacci{ private static int times ...
- 斐波那契数列(Java实现)
描述 一个斐波那契序列,F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2),根据n的值,计算斐波那契数F(n),其中0≤n≤1000. 输入 输入 ...
- 斐波那契数列 Java 不同的实现方法所需要的时间比较
# 首先我们直接看一个demo以及他的结果 public class QQ { public static void main(String[] args) throws ParseException ...
随机推荐
- 七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用)
七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用) @ 目录 七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用) ...
- 专题 求数列的前n项和
\(\mathbf{{\large {\color{Red} {欢迎到学科网下载资料学习}} } }\)[[高分突破系列]高二数学下学期同步知识点剖析精品讲义! \(\mathbf{{\large { ...
- YashanDB发布会圆满收官,V23.1三大新品引领国产数据库技术与应用突破!
11月8日,YashanDB 2023年度产品发布会在线上成功召开.本次产品发布会以"惟实·励新"为主题,宣布崖山数据库系统YashanDB 内核能力.产品形态.生态创新全面升级, ...
- JDBC后端实现登录的逻辑
// 包名 package com.zhulx.JDBC; // 导入实例类 import com.zhulx.pojo.Account; import java.sql.Connection; im ...
- QToss:基于.NET架构的跨境电商的工具,助力企业实现智能数据营销
2024年10月13日下午参加了一场在深圳举办的跨境电商大佬们的聚会,现场参加的人数上千人. 大会分享嘉宾中有位来自美国的,他告诉我们不用担心美国政府会把TikTok禁掉,TikTok在全世界都很受欢 ...
- 云原生周刊:K8s 1.26 到 1.29 版本的更新 | 2024.1.29
开源项目推荐 Skaffold Skaffold 是一个命令行工具,有助于 Kubernetes 应用程序的持续开发.您可以在本地迭代应用程序源代码,然后部署到本地或远程 Kubernetes 集群. ...
- 使用idea搭建springBoot项目
转载至:https://blog.csdn.net/baidu_39298625/article/details/98102453 整体步骤同上 分享其中遇到的坑 一.maven依赖 springBo ...
- 从围绕API到围绕数据-使用流式编程构建更简洁的架构
背景 在服务刚刚搭建时,通常的思维就是根据API编写业务逻辑: // SendStream ... func (d *Svc) SendStream(stream MyApi_data.ProxyDi ...
- Ubuntu 22.04 全局快捷键失效问题
安装完 Ubuntu 22.04 后,你有可能会发现系统的快捷键失效了.侧栏用 Win + x 选中程序不可用了.为各种应用程序设置的快捷键也不起作用了. 出现此现象的原因,是因为 Ubuntu 22 ...
- 为Markdown/HTML文档生成一个简易目录
现在阅览文章的网页往往都带有一个目录,方便点击跳转.目录一般都是根据文档中的标题级别直接生成的. 现在我们也来模仿一个简单的,无非就是把<h1><h2>...的序列转化成树嘛 ...