为了提高自己的代码能力和算法能力,我决定每天学习一道算法题,吸收前辈思想。
【程序1】 TestRabbit.java
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子数量的规律为数列:1,1,2,3,5,8,13.....其实就是斐波那契数列 使用递归就可以实现
1 /** 2 * 兔子问题 3 * 2016/5/9 4 * 斐波那契数列求值 5 *题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 6 *小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 7 *程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 8 */ 9 package org; 10 11 import java.util.Scanner; 12 public class TestRabbit { 13 14 public static void main(String[] args) { 15 Scanner input = new Scanner(System.in); 16 int n = input.nextInt(); 17 int num = fun(n); 18 System.out.println("第"+n+"个月的兔子总数为:"+num); 19 } 20 21 public static int fun(int n){ 22 if(n == 1 || n ==2){ 23 return 1; 24 }else{ 25 return (fun(n-1) + fun(n-2)); 26 } 27 28 } 29 30 }
TestRabbit.java
时间: 2024-10-09 17:42:54