黑马程序员技术交流社区

标题: 不用面向对象求解兔子数量 [打印本页]

作者: 黑暗中漫舞    时间: 2016-7-3 12:46
标题: 不用面向对象求解兔子数量
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

作者: 罗森内里    时间: 2016-7-3 16:10
package array;

import java.util.Scanner;

public class Demo {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入月份");
                int month=sc.nextInt();
                System.out.println("第"+month+"月的兔子数量是"+rabbitCount(month));
                System.out.println("--------------------");
                for(int a=1;a<13;a++){
                        System.out.println("第"+a+"月的兔子数量是"+rabbitCount(a));
                }
        }
        /*思路:新生兔子要过两个月之后才能生新兔子,因此最开始前两个月没有兔子出生,两个月之后,每个月
         *                 的兔子数量应该是前一个月的兔子数量加上这个月能生新兔子的兔子数量,这个月能生的兔子中
         *     年龄最小的兔子就是两个月前出生的兔子,所以这个月能生新兔子的兔子数量就是两个月前的兔
         *     子数量.
         */   
        public static int rabbitCount(int month){
                if(month==1||month==2){
                        return 1;
                }
                else{
                        return (rabbitCount(month-1)+rabbitCount(month-2));
                }
        }
}
作者: 罗森内里    时间: 2016-7-3 16:13
运行结果:
请输入月份
5
第5月的兔子数量是5
--------------------
第1月的兔子数量是1
第2月的兔子数量是1
第3月的兔子数量是2
第4月的兔子数量是3
第5月的兔子数量是5
第6月的兔子数量是8
第7月的兔子数量是13
第8月的兔子数量是21
第9月的兔子数量是34
第10月的兔子数量是55
第11月的兔子数量是89
第12月的兔子数量是144


QQ截图20160703160915.png (15.67 KB, 下载次数: 2)

QQ截图20160703160915.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2