A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© maxwell247 中级黑马   /  2015-9-21 16:33  /  539 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 maxwell247 于 2015-9-27 10:13 编辑

从网上找到一份编程练习题,我决定将里面的题目全都做一遍。

/**
        题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
        假如兔子都不死,问每个月的兔子总数为多少?
*/
我画的分析表格。(横着看)



/*
        经过分析发现,兔子总数为 1,1,2,3,5,8,13,21,34... (第三个数是前两个数之和),这也就是斐波那契数列。
*/
class  RabbitDemo{

        public static void main(String[] args) {
                // 输出24个月之内,兔子的总数
                for (int i=1;i<=24;i++){
                        System.out.println("第"+i+"个月兔子的总数为:"+function(i));
                }
        }

        /**
                求第n个月兔子的总数
                @param n月份
                @return n月时兔子的总数
        */
        public static int function(int n){
                if ( n==1 || n==2){
                        return 1;
                }else{
                        return function(n-1)+function(n-2);
                }
        }
}



5 个回复

倒序浏览
这是递归的练习....你学的好快
回复 使用道具 举报
这个类子学递归挺好的,谢谢了
回复 使用道具 举报
递归联系很好
回复 使用道具 举报
import java.util.Scanner;
class A {
        public static void main(String[] args) {
                Scanner sc =new Scanner(System.in);
                System.out.println("请输入所需要的月份");
                int n=sc.nextInt();
                        int[] arr=new int[n+1];
                        arr[0]=0;
                        arr[1]=1;
                       
                        for (        int x=0;x<n-1 ;x++ ) {
                                        arr[x+2]=arr[x+1]+arr[x];
                                }
                                System.out.println("第"+n+"月的兔子是"+arr[n]+"对");
        }
}
回复 使用道具 举报
赶紧走,有用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马