首页 > 代码库 > 题目序号(1~5)

题目序号(1~5)

 程序1:

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

  

 1 /**
 2  * Fibonacci
 3  * 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总对数为多少?
 4  * 
 5  * @author langdao
 6  *
 7  */
 8 package oneToTen;
 9 import java.util.Scanner;
10 public class Fibonacci {
11     public static void main(String[] args) {
12         // TODO Auto-generated method stub
13         Scanner scanner = new Scanner(System.in);
14         System.out.println("请输入第几个月份:");
15         int n = scanner.nextInt();
16         System.out.println(fibonacci(10) + ":" + fibonacciNormal(10));
17         int sum = 0;
18         for (int i = 1; i <= n; i++) {
19             System.out.print(fibonacci(i) + "\t");
20         }
21     }
22     // 递归实现方式
23     public static int fibonacci(int n) {
24         if (n <= 2) {
25             return 1;
26         } else {
27             return fibonacci(n - 1) + fibonacci(n - 2);
28         }
29     }
30     // 递推实现的方式
31     public static int fibonacciNormal(int n) {
32         if (n <= 2) {
33             return 1;
34         }
35         int n1 = 1, n2 = 1, sn = 0;
36         for (int i = 0; i < n - 2; i++) {
37             sn = n1 + n2;
38             n1 = n2;
39             n2 = sn;
40         }
41         return sn;
42     }
43 }

 

题目序号(1~5)