/*
* Java练习题:兔子问题
此问题又叫斐波那契数列(Fabonacci),是最先研究这个数列的人是比萨的列奥那多(又名费波那契),他描述兔子生长的数目时用上了这数列。
第一个月有一对刚诞生的兔子
第二个月之后它们可以生育
每月每对可生育的兔子会诞生下一对新兔子
兔子永不死去
*/
package everyDay; public class Tutu { public static void main(String[] args) { int month = 12; int sum; int L1 = 1; int newL1; int L2 = 0; int newL2; int L3 = 0; int newL3; for (int i = 1; i <= month; i++) { sum = L1 + L2 + L3; System.out.println("sum: " + sum); newL2 = L1;// L1 升级 L2 newL3 = L2;// L2 升级 L3 newL1 = L3 + newL3;// L3 生产 L1 L1 = newL1; L2 = newL2; L3 = L3 + newL3; } } }
网上找的方法不清楚为什么初始化n1,n2都是1
import java.util.Scanner; public class Tutu2 { public static void main(String[] args){ int n1,n2,n3,month; //n1,n2,n3 用作每月兔子数目的传递 System.out.print("请输入需要计算的月份数:"); Scanner sc=new Scanner(System.in); month=sc.nextInt(); n1=1; n2=1; System.out.println("第1个月的兔子对数:"+n1); System.out.println("第2个月的兔子对数:"+n2); //依次传递,只需一次运算 for(int i=1;i<month;i++) { n3=n1+n2; n1=n2; n2=n3; System.out.println("第"+month+"个月的兔子对数:"+n3); } } }