您的位置:首页 > 其它

斐波那契序列的基本实现

2011-10-12 19:51 239 查看
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
;

}

}

说明:最基本的递归,就是反应下你对递归的了解程度【终止条件,迭代】。

栈方式:反应你对递归的理解,函数递归通常都是拿栈来实现的,那当然一般的递归函数你都可以去用栈完成了。

循环方式:因为上面两种都是非常浪费内存空间,并且做了大量的重复用算。因此,采用另开临时空间标记的方式进行了,这样可以记住前面求过的值。

来源:http://shuofenglxy.iteye.com/blog/895152
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: