古典问题:有一对兔子,从出生后第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
时间: 2024-10-09 21:57:40