1. 程式人生 > >【Java】斐波那契數列前N項(堆疊演算法)

【Java】斐波那契數列前N項(堆疊演算法)

堆疊是一種很靈活的"後進先出"資料結構,使用堆疊可以節省記憶體的開銷。比如,遞迴是一種很消耗記憶體的演算法,可以藉助堆疊消除大部分遞迴,達到和遞迴演算法同樣的目的。

下面用例子實現求斐波那契數列前N項

import java.util.*;

public class Fibonacci {
	public static void main(String[] args) {
		Stack <Integer> stack=new Stack<Integer>();//建立一個堆疊物件
		stack.push(new Integer(1));//把第一個數壓入棧
		stack.push(new Integer(1));//把二個數壓入棧
		int k=1;
		while(k<=10){
			for(int i=1;i<=2;i++)
			{
				Integer F1=stack.pop();//取出棧頂的數
				int f1=F1.intValue();
				Integer F2=stack.pop();//取出棧頂的數
				int f2=F2.intValue();
				Integer temp=new Integer(f1+f2);//計算第三項
				System.out.println(""+temp.toString());
				stack.push(temp);//將第三項壓入棧
				stack.push(F2);
				k++;
			}
		}
	}

}