package demo;
/**
* Algorithm Gossip: 费式数列
*Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免
*子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三
*只免子,三个月后有五只免子(小免子投入生产)......。
*如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生
*产,类似的道理也可以用于植物的生长,这就是Fibonacci数列,一般习惯称之为费氏数列,例
*如以下: 1、1 、2、3、5、8、13、21、34、55、89......
* @author gaoq
* @date 2015-5-13 下午12:48:06
*/
public class FeiShiShuLie {
public static void main(String[] args) {
System.out.println(getCount(1,0));
System.out.println(getCount(2,0));
System.out.println(getCount(3,0));
System.out.println(getCount(4,0));
System.out.println(getCount(5,0));
System.out.println(getCount(6,0));
System.out.println(getCount(7,0));
}
private static int getCount(int n,int sum){
if(n == 1 || n == 2 ){
return 1;
}
return sum = getCount(n-1,0)+getCount(n-2,0);
}
}
相关推荐
斐波那契数列 *以兔子繁殖为例子而引入,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、…… * 在数学逻辑上以递归方法定义
《数据结构与算法分析——Java语言描述》是一本深度探讨数据结构和算法的专著,主要面向使用Java编程语言的读者。数据结构是计算机科学的基础,它涉及到如何在内存中组织和存储数据,以便高效地访问和操作。而算法则...
算法课程设计——分治法(java实现) 本课程设计报告的主要内容是对分治法的详细分析和讲解,并使用 Java 语言对其进行实现。分治法是一种经典的排序算法,它的主要思想是将问题分解为两个子序列,然后对子序列进行...
首先,让我们来看看Java算法中的基础部分——排序算法。Java中常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等。冒泡排序和插入排序适用于小规模数据,而快速排序和归并排序则在大数据...
冒泡排序是一种基础且经典的排序算法,其工作原理是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成...
根据给定的文件信息,我们可以总结出以下关于Java经典算法的知识点: ### 1. 斐波那契数列 斐波那契数列是一种典型的递归算法应用,数列的每一项都是前两项的和。在代码示例中,通过递归函数`f(int x)`实现了...
在Java编程中,解决这一问题通常有多种策略,包括回溯法、深度优先搜索(DFS)和位运算等。接下来,我们将详细探讨这三种方法。 首先,我们来看回溯法。回溯法是一种试探性的解决问题的方法,它尝试逐步构建解决...
- `JAVA1-2-01`至`JAVA1-2-10`涵盖了基本的算法设计和数据类型操作。例如,阶梯数列、素数判断、阶乘求和、近似值计算等。这些都是对整型和浮点型数据处理的基本练习,同时涉及条件判断、循环控制等基本语法。 3. ...
在《JAVA绝对经典算法》中,程序1展示了如何通过递归方法计算斐波那契数列。斐波那契数列是一个非常著名的数列,在自然界、艺术、建筑等众多领域都有其身影。数列的前两项通常定义为1,之后每一项都是前两项的和。 ...
这个数列的定义是这样的:第一项和第二项都是1,从第三项开始,每一项都等于前两项之和。用数学公式表示就是: F(1) = 1, F(2) = 1, F(n) = F(n-1) + F(n-2) (n >= 3) 在给定的Java代码中,`result` 方法实现了...
在"蓝桥杯 —— 基础练习 Fibnoacci 数列测试数据.zip"这个压缩包中,包含了用于测试斐波那契数列算法的输入数据。参赛者应该下载并解压这些文件,然后使用自己的程序去处理这些数据,以确保算法的正确性和效率。...
今天我们将深入探讨2017年的一些中级Java算法编程题目,并附上解题思路,以帮助广大程序员和编程爱好者提升自身的编程技能。 首先,我们来探讨一个经典且基础的数学问题——菲波拉契数列。该数列的每一项都是前两项...
在学习编程语言的过程中,算法是核心技术之一,尤其是对Java这样的经典编程语言。掌握了算法,不仅能够解决实际问题,还能提高编程能力,培养逻辑思维。对于Java程序员而言,掌握一系列经典的算法题是提升自身竞争力...
本资源“经典常用算法 Java和C语言两种实现”聚焦于将这些算法用两种广泛使用的编程语言——Java和C语言进行实现,旨在帮助开发者理解和应用这些基础且重要的算法。 1. **排序算法**: - **冒泡排序**:简单的比较...
Java算法讲解附源码,这个主题涵盖了编程领域中至关重要的部分——算法。在计算机科学中,算法是解决问题或执行任务的精确步骤集合。对于Java开发者来说,理解和掌握各种算法能够提升编程技能,优化代码性能,解决...
以上介绍了三种基本的排序算法——插入排序、冒泡排序和选择排序。虽然它们在处理小规模数据集时表现良好,但在大规模数据集面前,这些算法的性能通常不如更高效的算法,如快速排序、归并排序等。然而,了解这些基础...
对于初学者和有经验的程序员来说,理解和掌握各种算法的Java实现是提升技能的关键步骤。"各种算法的Java实现"这个主题包含了大量实用的知识点,让我们逐一深入探讨。 1. **排序算法**:排序是数据处理的基础,Java...
《数据结构与算法分析——Java语言描述.pdf》这本书将涵盖以上所有内容,并通过实例和练习帮助读者巩固理解。学习这些知识不仅可以提升编程技能,也能为面试和项目开发做好准备。记住,理解并熟练运用数据结构和算法...
标题中的“java经典算法大全”指的是Java编程语言中的一些常用且经典的算法集合,这些算法是解决各种计算问题的基础。在编程领域,算法是解决问题的步骤和方法,它们可以帮助我们高效地处理数据,优化程序性能。Java...