斐波那契数列(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 ...
随机推荐
- ASP.NET Core – 操作 Uri 和 Query
前言 以前就有写过了 Asp.net core 学习笔记 (操作 URL 和 Query), 但很乱, 这篇作为整理. Uri 介绍 结构: [Scheme]://[Host]:[Port][/Pat ...
- 2024.09.18初赛模拟MX-S/P6029记录
MX-S 太简单了,没啥难度.\yiw $ 1, 3, 5, 7, 9 $ 的二叉搜索树棵数是卡特兰数. P6029 题意 给定一张有 $ n $ 个点,$ m $ 条边的图.可以任意交换途中两条边的 ...
- jpa 多条件模糊查询,分页并排序
jpa 多条件模糊查询,分页并排序很难吗,这样写不就几行代码的事吗?搞不明白你们写的怎么长篇大论花里胡哨的,看的一脸懵逼. jpa多字段模糊查询,持久层字段还是要一一对应的,但是你可以在service ...
- 【赵渝强老师】阿里云大数据ACP认证之阿里大数据产品体系
阿里大数据产品体系是基于阿里云飞天平台上的数据处理服务.主要分为阿里云大数据基础产品和阿里云数加平台,其产品架构图如下所示: 一.阿里云大数据基础产品 1.云数据库--RDS(ApsaraDB for ...
- Js运算符(操作符)
算数运算符 a = 1 + 1 // 2 a = 10 - 5 // 5 a = 10 / 5 // 2 a = 10 / 0 // js中除以0不会报错,结果是Infinity a = 2*2 // ...
- 随心所动,厂商的CPU核管理策略介绍
一.引文 随着CPU架构的发展,工艺的升级,带来性能提升,能效的提升(同性能下).但是由于极限性能的增加,也带来了peak功耗的增加(大部分情况下,能效比的提升无法抵消这部分),CPU功耗优化一直是广 ...
- Fio工具详解【强大的IO性能压测工具】
Fio压测工具操作 fio -name=iouring_test -filename=/mnt/vdd/testfile -iodepth=128 -thread -rw=randread -ioen ...
- Microsoft 发布 .NET 9 RC 2
距离最终版本还有一个月的时间,Microsoft 已经交付了 .NET 9 的第二个也是最后一个候选版本..NET 团队在公告帖子中写道[1],"当我们为 11 月的 .NET 9 正式发布 ...
- OpenCL架构
OpenCL提供了一种统一的编程接口,使得程序员可以编写一次代码,然后在多种处理器上运行. 平台模型 OpenCL平台总是包括一个宿主机(host).宿主机与OpenCL程序外部的环境交互,包括I/O ...
- 通过python提取csv文件中包含某个关键字的单元格
通过python提取csv文件中包含某个关键字的单元格 def search(lines, pattern): previous_lines = [] for li in lines: if patt ...