java编程题50道(1)
程序1
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
题目思路:
先推出几个月内兔子数量 1 1 2 3 5 8 13.。。。
可推出规律为 n = n-1+n-2
定义函数累计兔子数量,再通过主函数输出
package test; import java.util.Scanner; public class hello { public static int rabbit(int i) { if(i==1||i==2) {//兔子数量在前两个月没有变化 return 1; } else { return rabbit(i-1)+rabbit(i-2);//根据变化可知三个月后均为前两月相加 } } public static void main(String[] args) { Scanner in =new Scanner(System.in); int i =in.nextInt(); int a; a=rabbit(i); System.out.print("输出月份求该月兔子数量h"); System.out.print(i+"月共有"+a+"对兔子"); } }