欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java中统计兔子的数量

程序员文章站 2022-04-04 20:11:01
...

今天是编写Java的第一天

下面是今天解决的问题:一个关于统计兔子数量的java编程题目。

题目分析:

    *题目1::
    *有一对兔子,从出生后第3个月起每个月都生一对兔子,
    *小兔子长到第三个月后每个月又生一对兔子,
    *假如兔子都不死,问每个月的兔子对数为多少? 
    *
    *
    *程序分析:每个月的兔子个数规律
    *a表示为一个月龄兔子, b表示两个月龄的兔子 c表示成年的兔子
    *只有成年的兔子才有生育能力
    *第1个月:( a   +  b*0 ) +  c*0       = 1 
    *第2个月:(a*0  +  b*1 ) +  c*0       = 1
    *第3个月: (a*1  +  b*0 ) +  c*1       = 2
    *第4个月:(a*1  +  b*1 ) +  c*1       = 3
    *第5个月:(a*2  +  b*1 ) +  c*2       = 5
    *第6个月: (a*3  +  b*2 ) +  c*3       = 8
    *第7个月:(a*5  +  b*3 ) +  c*5       = 13
    *第8个月:(a*8  +  b*5 ) +  c*8       = 21
    *第9个月:(a*13 +  b*8 ) +  c*13      = 34
    *第10个月 (a*21 +  b*13) +  c*21      = 55
    *第11个月 (a*34 +  b*21) +  c*34      = 89
    *第12个月 (a*55 +  b*34) +  c*55      = 144
    */
    /*
    *变量分析:
    *变量1 月份 : 第n月
    *变量2 第n月中不可以生育的兔子个数:  f1  只
    *变量3 第n月中可以生育的兔子个数:    f2  只
    *变量4 第n月中兔子总量:              fn  只
    */
    /*
    *数学表达式:
    *   第一个月:  f1 = a   +  b*0 = 1 ,    f2 = c*0 = 0 ,   fn = f1 + f2 = 1 ;
    *   第二个月:  f1 = a*0 +  b*1 = 1 ,    f2 = c*0 = 0 ,   fn = f1 + f2 = 1 ;
    *   ------------------------------------------------------------------------
    *   第三个月:  f1 = a*1 +  b*1 = 1 ,    f2 = c*1 = 1 ,   fn = f1 + f2 = 2 ;
    *   第四个月:  f1 = a*2 +  b*1 = 2 ,    f2 = c*1 = 1 ,  fn = f1 + f2 = 3 ;
    *   第五个月:   f1 = a*2 +  b*1 = 3 ,    f2 = c*2 = 2 ,  fn = f1 + f2 = 5 ;
    *   第六个月:  f1 = a*3 +  b*2 = 5 ,     f2 = c*3 = 3 ,  fn = f1 + f2 = 8 ;
    *   可以得出规律:fn--->f1      <-----|   
    *                 f1--->f2         |
    *                 f2--->fn   ----->|
    *     即:f(n)= f(n-1)+ f(n-2);

代码块:

import java.util.Scanner;       
public class RabbitCount {

    public static void main(String[] args){

        while(true){
            //Scanner是一个类,用户能够从 System.in 中读取一个数:
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            //调用计算兔子总量的方法,并输出兔子总量
            System.out.println("第" + n + "月的兔子总量"+fn(n));
        }
    }

    //定义一个方法用于计算兔子总量
    public static int fn(int n){
        if((n == 1)||(n == 2)){
            //n为第一月和第二月的时候兔子总量为1
            return 1;
        }else{
            return fn(n-1) + fn(n-2);
        }
    }

}       

总结:

完整的编写一个程序,所需要的步骤还是十分讲究的。这的代码是再记事本里面写的,用doc命令去运行的,处理起来是有一些繁琐,但更能够深入的了解java的运行机制,所以对于初学者而言还是有好处的。如果用Eclipse开发,就简单的多了。

  • 第一天的学习思维导图
    -,Java中统计兔子的数量
相关标签: 学习