[Java] 练习题001:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

   斐波那契数列, S= Sn-1+Sn-2

 

[java] view plain copy
 
 print?
  1. import <a href="http://lib.csdn.net/base/javaee" class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.util.*;  
  2.   
  3. public class RubbitTest{  
  4.     public static void main (String[] args) {  
  5.         long s1,s2;// 定义这个月和下个月兔子的数量  
  6.         s1 = 1;  //第一个月为1对  
  7.         s2 = 1;  //第二个月为1对  
  8.         int i=1;  //定义一个控制变量  
  9.         int m;  // 月份数  
  10.         Scanner in = new Scanner(System.in); //从控制台输入想要查看的月份  
  11.         System.out.println("请输入你想要查看的月数:");//输入提示  
  12.         m = in.nextInt();//输入的整数月份赋值给m  
  13.         //while循环  
  14.         while(true){  
  15.             //第一个月和第二个月兔子的数量都为1对  
  16.             if(i==1||i==2){  
  17.                 System.out.println(i+" month: "+s1);  
  18.                 i++; // 控制变量 i 加1  
  19.             }  
  20.             // i 大于3并且小于我们需要查看的月份  
  21.             else if(i<m){  
  22.                 s1 = s1+s2;   
  23.                 s2 = s1+s2;    
  24.                 System.out.println(i+" month: "+s1);  
  25.                     i++;//月份加1  
  26.                 System.out.println(i+ " month: "+s2);  
  27.                     i++; //朋份加1  
  28.             }else{  
  29.                 break;//不符合条件就退出  
  30.             }  
  31.                   
  32.         }  
  33.     }  
  34. }  

 

posted on 2016-10-25 10:28  肥羊lafe  阅读(1526)  评论(0编辑  收藏  举报

导航