今天实在没事干,刚好别人问了我下斐波那契面试怎么回答。就写了三个最基本的方式来弄吧。
import java.util.Stack;
public class StackAndRechurisive {
public static void main(String[] args){
int n = 8;
System.out.println(StackMethod(n));
System.out.println(ForMethod(n));
System.out.println(Fac(n));
}
public static double Fac(int n){
if(n==0)
return 1;
else if(n==1)
return 1;
else
return Fac(n-1)+Fac(n-2);
}
public static double StackMethod(int n){
if(n==0)
return 1;
if(n==1)
return 1;
Stack<Integer> stack = new Stack<Integer>();
int result=0,temp=0;
if(n>=2){
stack.push(n-1);
stack.push(n-2);
n--;
}
while(stack.size()>0){
temp = stack.pop();
if(temp==0)
result+=1;
else if(temp==1)
result+=1;
else{
stack.push(temp-1);
stack.push(temp-2);
}
}
return result;
}
public static double ForMethod(int n){
double[] array = new double[n+1];
array[0]=1;
array[1]=1;
for(int i=2;i<=n;i++)
array[i]= array[i-1]+array[i-2];
return array[n];
}
}
说明:最基本的递归,就是反应下你对递归的了解程度【终止条件,迭代】。
栈方式:反应你对递归的理解,函数递归通常都是拿栈来实现的,那当然一般的递归函数你都可以去用栈完成了。
循环方式:因为上面两种都是非常浪费内存空间,并且做了大量的重复用算。因此,采用另开临时空间标记的方式进行了,这样可以记住前面求过的值。
分享到:
相关推荐
通过上述代码示例,我们不仅实现了Fibonacci数列的基本功能,还对比了递归和迭代两种不同的实现方式。递归方法虽然简单易懂,但在实际应用中往往因为效率问题而不被推荐使用。相比之下,迭代方法则更加高效,尤其是...
Python中递归实现斐波那契数列的基本代码如下: ```python def fibonacci(n): if n print("输入错误,n应大于0") elif n == 1 or n == 2: return 1 else: return fibonacci(n-1) + fibonacci(n-2) ``` 这个...
Java中斐波那契数列的简单实现方法 Java中斐波那契数列的简单实现方法是指使用Java语言来实现斐波那契数列的生成。斐波那契数列是指一个数列,其中每一项的值是前两项的和。这个数列有很多实际应用,例如解决兔子生...
K阶斐波那契数列的计算可以扩展到更复杂的场景,比如优化算法以处理大数值,或者将其应用于特定的问题,如在图形学中的分形生成、生物信息学中的DNA序列分析,甚至在金融市场的模拟中。在实际应用中,理解并优化算法...
在C++编程中,理解并能够实现斐波那契数列是基本功,它可以帮助开发者掌握迭代、循环控制和高效算法设计等概念。此外,斐波那契数列还常用于测试计算机性能、理解和应用动态规划等问题。 了解和实践非递归的...
斐波那契数列(Fibonacci sequence),也被称为黄金分割数列,是由意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci)在13世纪提出的一个经典数学序列。这个数列的基本定义是从第3项开始,每一项都是前两项的和...
斐波那契数列(Fibonacci sequence)是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, ...。该数列从第三项开始,每一项都等于前两项之和。数学上,斐波那契数列可以这样定义: - F(0) = 0 - F(1) = 1 - F(n) = F(n-1)...
首先,让我们了解一下斐波那契数列的基本概念。 斐波那契数列是一个数学上的序列,其中每个数字是前两个数字的和。数列的开始通常是0和1,之后的每一项都是前面两项的和。以数列的形式表示为:0, 1, 1, 2, 3, 5, 8,...
在计算机科学中,斐波那契数列可以用于算法设计,比如斐波那契堆的实现。此外,斐波那契数列还被应用于密码学、图像处理等领域。 #### 结论 综上所述,斐波那契数列作为一种特殊的数列,在数学及其他众多领域都...
这个经典的数学问题不仅展示了斐波那契数列的基本应用,同时也体现了编程解决问题的逻辑思维。通过迭代或递归方式实现斐波那契数列的计算是计算机科学教育中常见的练习,有助于学生理解和掌握算法以及控制流程的概念...
斐波那契数列(Fibonacci sequence)是数学中的一个非常著名的数列,指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, …,即第一项为0,第二项为1,从第三项开始每一项都是前两项之和。 **特点:** 1. **递推性*...
斐波那契数列的定义是这样的:序列中的每个数字是前两个数字的和,通常以0和1开始,即F(0) = 0,F(1) = 1。之后的每一项F(n)都是前两项F(n-1)和F(n-2)的和,用公式表示就是F(n) = F(n-1) + F(n-2)。数列的初始部分看...
本文将深入探讨两个重要的概念:字符串匹配和斐波那契数列,并结合汇编语言来阐述其实现。 一、字符串匹配 字符串匹配是计算机科学中的一个基本问题,通常用于查找一个字符串(模式)在另一个字符串(文本)中是否...
本实验通过创建多个线程,分别用于执行矩阵乘法和计算斐波那契数列,展示了多线程在并发处理不同计算任务中的应用。 一、线程基础 线程是操作系统分配CPU时间的基本单元,一个进程中可以包含一个或多个线程。与进程...
1. **递推算法**:基于斐波那契数列的定义,即F(n) = F(n-1) + F(n-2),最直观的实现方式是递归。然而,递归算法存在大量的重复计算,效率较低,时间复杂度为O(2^n)。 2. **迭代算法**:为了避免递归中的重复计算,...
斐波那契数列(Fibonacci sequence)是数学领域中的一个重要概念,它在计算机...总之,理解并能实现斐波那契数列生成器是每个程序员的基本技能之一,它不仅可以深化对递归和迭代的理解,还能在实际应用中发挥重要作用。
斐波那契数列是一个数学序列,其中每个数字是前两个数字的和,通常以0和1开始:0, 1, 1, 2, 3, 5, 8, 13, ...。在编程中,当斐波那契数达到一定大小时,可能会导致整数溢出,因为超过了数据类型的限制。 描述中的...
斐波那契数列是一个非常经典的数学序列,其定义如下:第0项是0,第1项是1,从第2项开始,每一项都等于前两项之和。即F(0) = 0,F(1) = 1,F(n) = F(n-1) + F(n-2) (n>=2)。这个数列在计算机科学中有许多应用,如算法...
在微机原理的背景下,实现斐波那契数列可能涉及到循环结构、递归算法或者动态规划,这些都是编程的基础技能。通过这个实验,学生可以学习到如何用程序解决实际问题,并理解不同计算方法的时间复杂度和空间复杂度。 ...
内容概要:本文主要讲述了使用C++实现斐波那契数列以及泰波那契数列的方法,通过动态规划的方式解决这一数学难题。文章首先介绍了斐波那契数列及其变体泰波那契数列的基本概念和递推关系,接着深入解释了dp状态方程...