【Java】斐波那契數列前N項(堆疊演算法)
阿新 • • 發佈:2019-02-01
堆疊是一種很靈活的"後進先出"資料結構,使用堆疊可以節省記憶體的開銷。比如,遞迴是一種很消耗記憶體的演算法,可以藉助堆疊消除大部分遞迴,達到和遞迴演算法同樣的目的。
下面用例子實現求斐波那契數列前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++; } } } }