程序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 }
时间: 2024-11-08 07:12:02