[Java] 练习题001: 计算兔子的数量

时间:2023-02-12 21:00:39
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
斐波那契数列, Sn = Sn-1+Sn-2



import java.util.*;

public class RubbitTest{
  public static void main (String[] args) {
    long s1,s2;// 定义这个月和下个月兔子的数量
    s1 = 1;    //第一个月为1对
    s2 = 1;    //第二个月为1对
    int i=1;    //定义一个控制变量
    int m;    // 月份数
    Scanner in = new Scanner(System.in); //从控制台输入想要查看的月份
    System.out.println("请输入你想要查看的月数:");//输入提示
    m = in.nextInt();//输入的整数月份赋值给m

    //while循环
    while(true){
      //第一个月和第二个月兔子的数量都为1对
      if(i==1||i==2){
        System.out.println(i+" month: "+s1);
        i++; // 控制变量 i 加1
      }
      // i 大于3并且小于我们需要查看的月份
      else if(i<m){
        s1 = s1+s2;
        s2 = s1+s2;    
        System.out.println(i+" month: "+s1);
          i++;//月份加1
        System.out.println(i+ " month: "+s2);
          i++; //朋份加1
      }else{
        break;//不符合条件就退出
      }
        
    }
  }
}