標籤:問題: main ret span for class 10個 out str
古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子, 假如兔子都不死,問每個月的兔子總數為多少?
數列:1 1 2 3 5 8 13......
可以總結出公示為F(n)=F(n-1)+F(n-2)
java程式碼實現如下:
public class ArithTest { public static void main(String[] args) { ArithTest at = new ArithTest(); // 演算法一:顯示前20個月每月兔子數量 for(int n=1;n<=20;n++){ System.out.println("第"+n+"個月兔子數量為"+at.f(n)); } /* 演算法一:斐波那契數列 * 古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子, 假如兔子都不死,問每個月的兔子總數為多少? * 規律:1 1 2 3 5 8 13 ... * f(n)=f(n-1)+f(n-2) */ public int f(int n){ if(n==1|n==2){ return 1; }else{ return f(n-1)+f(n-2); } }}
執行結果為:
第1個月兔子數量為1第2個月兔子數量為1第3個月兔子數量為2第4個月兔子數量為3第5個月兔子數量為5第6個月兔子數量為8第7個月兔子數量為13第8個月兔子數量為21第9個月兔子數量為34第10個月兔子數量為55第11個月兔子數量為89第12個月兔子數量為144第13個月兔子數量為233第14個月兔子數量為377第15個月兔子數量為610第16個月兔子數量為987第17個月兔子數量為1597第18個月兔子數量為2584第19個月兔子數量為4181第20個月兔子數量為6765
演算法練習2---斐波那契數列java版