package com.dragon.bean3;
/**
* 使用递归实现斐波那契数
* @author Administrator
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/**
* 这组数字应该是 :1、1、2、3、5、8、13、21、33... ...
*/
for (int i = 0; i < 30; i++) {
System.out.println(calc(i));
}
}
public static long calc(long s){
if(s<=0){
return 0;
}else if(s>0&&s<=2){
return 1;
}else{
return calc(s-1)+calc(s-2);
}
}
}
相关推荐
本文详细介绍了如何使用递归算法计算斐波那契数列。虽然递归方法简洁明了,但其实现的时间复杂度较高,不适用于大规模数据处理。在实际应用中,通常会采用其他优化方法(如动态规划、记忆化搜索等)来提高效率。
### Java实现用递归算法和非递归算法求解斐波那契数列问题 #### 知识点解析 在给定的文档标题与描述中,“Java实现用递归算法和非递归算法求解斐波那契数列问题”明确指出了本文将围绕Java编程语言、递归算法与非...
本篇文章主要探讨如何使用递归算法来实现一个整数的逆序操作,即把一个数字的位数顺序反转过来。例如,将数字1234转换为4321。 #### 知识点概述 1. **递归算法的概念** 2. **递归的基本要素** 3. **递归与循环的...
使用C++非递归实现fibonacci数列,对正在学习算法的同学应该挺有帮助的
本文将探讨如何使用C++语言来实现Fibonacci数列的递归和非递归算法。 **递归算法** 递归是一种解决问题的方法,它定义一个函数或过程通过调用自身来解决问题。对于Fibonacci数列,递归实现非常直观: ```cpp int ...
在.NET中,递归算法可以通过C#、VB.NET或其他.NET语言实现。使用递归时,开发者应清楚地理解问题的本质,准确设定基础情况和递归情况,并考虑其性能影响。同时,调试递归代码可能较为困难,因为调用链较长,因此良好...
标题中提到的是使用递归算法实现斐波那契序列的C程序。递归是一种函数调用自身的技术,它在处理某些问题时能够提供简洁且直观的解决方案。 递归斐波那契函数的C代码通常如下所示: ```c #include int fibonacci...
7. 递归算法和循环算法在斐波那契数列计算中的应用:递归算法的时间复杂度为 O(2^n),循环算法的时间复杂度为 O(n)。 8. 递归算法和循环算法在二分查找算法中的应用:递归算法和循环算法的时间复杂度都为 O(logn),...
在ACM(国际大学生程序设计竞赛)中,递归算法是一种常见的解决问题的方法,它通过函数自身调用自身来实现问题的解决。递归的核心在于找到基本情况(base case),即可以直接求解的问题,以及每次递归调用时问题规模...
递归算法是实现斐波那契数列的一种常见方法,也是理解递归思想的关键实例。本篇文章将深入探讨递归算法和斐波那契数列,帮助你更好地理解和掌握这两个知识点。 首先,我们来定义斐波那契数列。斐波那契数列是一串由...
- **非递归算法**:通常使用迭代(如循环)的方式解决问题,避免了递归带来的潜在问题,但可能不如递归算法简洁。 **实例分析**: 例如计算阶乘 n! 和累加 1+2+3+…+n 的递归与非递归实现。递归实现通过不断地自我...
给定的Java代码实现了一个特殊的递归算法来生成斐波那契数列的前n项,但其实现方式并非标准的递归,而是采用了循环结构。下面对代码进行逐行分析: 1. **类定义与主方法**:`Test` 类包含一个 `main` 方法,用于...
斐波那契数列是一个经典的数学概念,在计算机科学中经常被用作教学示例和算法设计的基础。这个数列的定义非常简单:第一项和第二项都是1,从第三项开始,每一项都等于前两项之和。用数学公式表示就是: F(1) = 1 F...
斐波那契数列是一个非常经典的数学概念,它在计算机科学和算法设计中有着广泛的...在提供的压缩包文件"Fibonacci"中,可能包含了这些算法的实现代码,通过学习和比较它们,可以更好地理解和掌握各种算法的效率和特点。
另一个例子是将整数转换为特定进制的表示,这个任务可以使用递归算法实现。给定的代码示例中,`numbconv`函数接收一个整数n,将其转换为指定进制b,并将结果保存在字符串s中。这个函数首先通过递归调用处理n除以b的...
下面是 Java 中使用递归算法实现斐波那契数列的代码: ```java public static int Recursion(int n){ if(n==1){ return 0; } if(n==2){ return 1; } return Recursion(n-1)+Recursion(n-2); } ``` 在上面的...
对于递归数据结构,如链表,非递归算法通常使用迭代的方式遍历。例如,求链表所有数据域之和,我们可以使用一个指针遍历链表,每次迭代累加当前节点的data值,直到指针为空。 对于递归问题,如汉诺塔,非递归解决...
4. **运行效率问题**:虽然递归算法在描述上非常直观,但由于多次函数调用以及可能产生的大量栈空间消耗,其实现往往比非递归版本效率低。 5. **栈溢出风险**:由于递归调用会占用大量的栈空间,因此如果递归深度过...
- 斐波那契数列是递归的经典例子,每个数是前两个数的和。C#实现如下: ```csharp public static int Fibonacci(int n) { if (n ) return n; return Fibonacci(n - 1) + Fibonacci(n - 2); } ``` 这个实现...