有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

分析:

第一个月-----------------1

第二个月-----------------1

第三个月-----------------2

第四个月-----------------3

第五个月-----------------5

第六个月-----------------8

第七个月-----------------13

从中发现,从第三个月开始,前两个月兔子数之后为第三个兔子总数。

那程序就好办了,迭代。

代码如下:

 1 package demo1;
 2 import java.util.Scanner;
 3 public class Demo {
 4     //方法一: 递归
 5     public static void main(String[] args) {
 6         int n = 5;
 7         System.out.println("第" + n + "个月,兔子的总数为" + fun(n));
 8     }
 9     private static int fun(int n) {
10         if((1 == n)||(2 == n))
11             return 1;
12         else
13             return (fun(n-1) + fun(n-2));
14     }
15 /*    public static void main(String[] args) {
16         @SuppressWarnings("resource")
17         Scanner sc = new Scanner(System.in);
18         System.out.println("请输入第几个月:");
19         int month = sc.nextInt();
20         System.out.println("第"+month+"个月,兔子的总数为:"+fun(month));
21     }
22     public static int fun(int month) {
23         if(month == 1 || month ==2) {
24             return 1;
25         }else
26             return (fun(month-1) + fun(month-2));
27     }*/
28 }

猜你喜欢

转载自www.cnblogs.com/panghuang/p/9270757.html
今日推荐