李敏 |
|
|||
日歷
統計
導航常用鏈接留言簿(1)文章分類
文章檔案
相冊收藏夾它山之石聚賢莊搜索最新評論
|
背景: 斐波納契數列(Fibonacci Sequence),又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21、……在數學上,斐波納契數列以如下被以遞歸的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 兩種方法實現 1)遞歸 2)遍歷 示例: for(int num=0;num<10;num++){ System.out.println(num+" "+fobin(num)); } 遞歸 //演算為目的,所以選用int private int fobin(int n) { if(n==0) return 0; if(n==1) return 1; return fobin(n-1)+fobin(n-2); } 遍歷 private int lastFobinListValue(List<Integer> list) { final int LEN=list.size(); final int lastNum=LEN-1; final int THE_N=list.get(lastNum); return THE_N; } private List<Integer> fobinList(List<Integer> list,int n) { for(int i=2;i<n;i++){ int last=list.get(i-2); int next=list.get(i-1); int num=last+next; list.add(new Integer(num)); } return list; } private List<Integer> initFobinList() { final int N1=1; final int N2=1; List<Integer> list=new ArrayList<Integer>(); list.add(new Integer(N1)); list.add(new Integer(N2)); return list; } private int fobin(int n) { if(n==0) return 0; if(n==1) return 1; /** int first=0; int next=1; int count=0; for(int i=1;i<n;i++){ count=first+next;//(n-2)+(n-1) first=next; //0->1 next=count; //1->1 } return count; */ List<Integer> baseList=initFobinList(); List<Integer> fullFobinList=fobinList(baseList,n); final int THE_N=lastFobinListValue(fullFobinList); return THE_N; }
|
![]() |
|
Copyright © 李敏 | Powered by: 博客園 模板提供:滬江博客 |