高效率:
package com.wlh;
/**
* 怎样用递归找出(1,1,2,3,5,8,13,21)中第30个数是几?
* @author Administrator
*
*/
public class SuShu {
static int i=2;
/**
*
* @param n 数列的第几个数
* @param a 上一个数
* @param b 上上一个数
*/
public static void count(int n,int a,int b){
int temp1=b;
int temp2=a+b;
i++;
if(i==n){
System.out.println(temp2);
return;
}
count(n,temp1,temp2);
}
/**
* @param args
*/
public static void main(String[] args) {
count(6,1,1);
}
}
低效率:当n到一定数的时候,算不出来,算法复杂度是指数级别的
package com.wlh;
/**
* 怎样用递归找出(1,1,2,3,5,8,13,21)中第30个数是几?
* @author Administrator
*
*/
public class SuShu {
static int i=2;
/**
*
* @param n 数列的第几个数
* @param a 上一个数
* @param b 上上一个数
*/
public static int count(int n){
if(n==1){
return 1;
}else if (n==2){
return 1;
}else {
return count(n-1)+count(n-2);
}
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.print(count(6));
}
}
分享到:
相关推荐
"斐波那契数列算法分析" 斐波那契数列是一种非常经典的数学概念,它的应用非常广泛,包括算法设计、生物学、经济学等领域。斐波那契数列的定义是:每个数都是前两个数的和,从第三个数开始,每个数都是前面两个数的...
费氏数列算法的实现通常包括递归和迭代两种方法: 1. **递归法**:最直观的方法是通过函数自身调用来实现,但这种方法效率较低,因为会有很多重复计算。例如,在Python中,递归实现可能如下: ```python def ...
斐波那契数列算法分析 斐波那契数列是数学中一个著名的数列,每个数都是前面两个数的和,从第三个数开始。这个数列的规律性是非常明显的,从第一个数1开始,每个数都是前面两个数的和。这个数列的数学表达式是F(n) ...
线性递推数列在理论研究和实际应用中都有广泛的应用,比如在计算斐波那契数列、解决递归问题、分析算法复杂度等方面。理解和掌握线性递推数列的理论与算法对于解决组合数学问题和编程竞赛中的动态规划问题尤其重要。...
内容概要:本文介绍了在PTA平台上使用C++语言通过递归和记忆化递归的方法来计算斐波那契数列。首先详细讲解了标准递归函数的实现,然后指出了其存在的性能瓶颈。接着介绍了使用记忆化递归来优化算法的具体步骤和代码...
本文在 C++ 中实现斐波那契数列算法有几种常见的方法; 递归算法 : 简单易懂,但效率低,因重复计算大量子问题。 迭代算法 :通过循环计算,避免了递归的重复计算,效率更高。 动态规划算法 : 利用数组存储计算...
蓝桥杯真题必刷题目-算法题等差数列.zip是一个包含蓝桥杯真题中关于等差数列算法题的压缩文件。该资源可以帮助参加蓝桥杯编程比赛的学生或爱好者熟悉和掌握等差数列相关的算法和数据结构,提高解题能力和编程水平。 ...
4阶斐波那契序列如下:f0=f1=f2=0, f3=1,…,fi=fi-1+fi-2+fi-3+fi-4,利用容量为k=4的循环队列,构造序列的前n+1项(f0, f1 , f2 ,… fn ),要求满足fn ≤200而fn+1 >200。
"斐波那契数列算法分析" 斐波那契数列是一种经典的算法问题,它的名称来自13世纪意大利数学家列昂纳多·斐波那契。该数列的定义是:每个数目都是前面两个数目的和,数列的前几个数目是:1, 1, 2, 3, 5, 8, 13, 21, ...
这是我第一次CSDN之旅,刚开始上手,就先传个小程序上去吧,路漫漫其修远兮,吾将上下而求索!
斐波那契数列: 在数学上它以递归的方式进行定义,指这样的一个数列:0、1、1、2、3、5、8、13、21、34、55、89、144……,即前两个数为分别为0和1,从第3项开始,每项的值都等于其前两项之和。斐波那契数列Fib(n)用...
通过阅读和分析这些源代码,可以加深对斐波那契数列算法的理解,并提高编程能力。 在信息学奥赛中,解决斐波那契数列问题不仅能锻炼选手的逻辑思维和编程技巧,还能培养他们对算法优化和复杂度分析的敏感性,这对...
经典斐波那契数列的算法实现教案 在本教案中,我们将探讨经典斐波那契数列的算法实现,并将其与 FOR 循环构造相结合,培养学生的变通性思维能力和程序设计能力。 知识点1:FOR 循环构造 * FOR 循环是控制构造中...
#### 一、斐波那契数列算法 在《JAVA绝对经典算法》中,程序1展示了如何通过递归方法计算斐波那契数列。斐波那契数列是一个非常著名的数列,在自然界、艺术、建筑等众多领域都有其身影。数列的前两项通常定义为1,...
2. **递归实现**:最直观的斐波那契数列算法实现方式是通过递归。然而,这种实现方法效率低下,因为它存在大量的重复计算。例如,计算F(n)会计算两次F(n-1),这会导致指数级的时间复杂度。 ```java public int ...
以上只是经典Java算法中的一部分,实际上还有许多其他算法,如查询算法、数列算法、排序算法等。这些算法不仅在解决问题时具有实用性,也是提升编程思维和技能的重要工具。学习和掌握这些算法有助于程序员更好地应对...
13.斐波那契数列算法:该算法用于生成斐波那契数列,通过递归和动态规划,生成斐波那契数列。该算法的时间复杂度为O(n),空间复杂度为O(n)。 14.汉诺塔问题算法:该算法用于解决汉诺塔问题,通过递归和动态规划,...
2. C#语法:包括类、方法、变量声明以及控制流语句,这些都是实现斐波那契数列算法的基础。 3. 数据绑定:在Web应用中,如何将计算结果展示在HTML页面上,可能涉及到了ASP.NET的数据绑定技术。 4. 错误处理:良好...
在这个算法设计实验报告中,主要关注的是通过不同的方法求解斐波那契数列,这是一种经典的计算机科学问题。斐波那契数列是由0和1开始,后面的每一项数字是前面两项数字的和,通常表示为F(n)。实验的目标是实现四种...