用Java语言计算递归算法题

1、有一对兔子,3个月后成年,以后每一个月都会生下一对兔子,问第十二个月有多少对兔子?
2、有一只猴子,第一天摘了N个桃子,以后每天吃的桃子都是前一天的桃子总数的一半还多一个,问如果第六天吃完桃子,那么猴子第一天摘了多少个?

   public static void main (String[]args){
            int temp1 = 1;  //前2个月兔子数量.
            int temp2 = 1;  //前1个月兔子数量
            int total = 0;
            for (int i = 1; i <= 12; i++) {
                //第三个月开始是前两个月之和
                total = temp1 + temp2;
                 temp1 = temp2;
                temp2 = total;
            }
            System.out.println("兔子总数:" + total);
    }
public static void main (String[]args){
        int num = 1;
        int i = 0;
        int sum = 0;
        for (i = 0; i < 5; i++)
        {
            sum = (num + 1) * 2;
            num = sum;
        }
        System.out.println("共有桃子:"+ sum);
    }

第一题网上太多了,一模一样的,但凡遇到问题先自己想一下,搜一下都不会问这个