题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一
对兔子,假如兔子都不死,问每个月的兔子总数为多少?
题目分析:兔子的规律为数列1,1,2,3,5,8,13,21....
看到这个数列,是否想起了斐波那契数列算法,从第三位数开始,遍可以套用公式。
公式为:Sn=S(n-1)+S(-2)
public static void main(String[] args) { //在main()方法中调用TUzi方法,并传入月份。 Tuzi(10); } public static void Tuzi(int month) { //count用来记录当前月的兔子数量,temp用来记录上个月的兔子数量 int count =1,temp=count; //对用户输入的值进行循环 for (int i =1; i < month; i++) { //如果输入的数字小于三月,则兔子还没有开始生产, //就只有默认的一对兔子 if (i <= 2) { System.out.println("第" + i + "月,有1对只兔子"); } else { //超过三个月,则开始计算 //当下一次循环来到时,当前月count会变成上个的值 //当前月的兔子=上一个月的兔子+上上个月的兔子 count +=temp; //替换数据 temp=count-temp; System.out.println("第" + i + "月,有"+count+"对只兔子"); } } }