/*  1、 有一对兔子,每两个月生一对兔子,问几个月后兔子总数有多少? */ //递归函数 public static int Recursion1(int n) {        int num; if(n == 0 || n == 1)            num = 1; else //尽管是兔子,然而近亲通婚真的能够吗? //每对兔子都是每两个月就滋生一对,所以每过两个月,兔子的个数翻倍 num = Recursion1(n - 2)*2; //每对兔子都是每两个月就滋生一对,所以每过两个月,兔子的个数翻倍 return num; }    //循环函数 public static int Cycle1(int n) {        int num=1; if(n == 0 || n == 1)            num = 1; else{            for(int i=0; i<n/2;i++){                num*=2; }        }        return num; }    /*  2、 一对兔子,出世后第三个月开始有生育能力,每月滋生一对小兔子。问一对兔子一年中可滋生出多少对兔子? */ //递归求解 public static int Recursion2(int n) {        if(n == 1 || n == 2)            return 1; else return Recursion2(n-1) + Recursion2(n-2); }    //循环求解 public static int Cycle2(int n) {        int sum=0; while(n>0){            int a=1; //a是一个月兔子 int b=0; //b是两个月的兔子 int c=0; //c是三个月及以上可生养的兔子 while(--n>0){ //每过一个月兔子变动 c += b; b = a; a = c; }            sum = a+b+c; }        return sum; }        public static void main(String[] args) {        //在这里假如过了6个月 System.out.println("1、6个月后,共有 " + Recursion1(6) + " 对兔子"); System.out.println("1、6个月后,共有 " + Cycle1(6) + " 对兔子"); System.out.println("2、7个月后,共有 " + Recursion2(7) + " 对兔子"); System.out.println("2、7个月后,共有 " + Cycle2(7) + " 对兔子"); }