古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
算法分析:
假设给兔子的对数编号
第一个月:1 , sum=1;
第二个月:1 ,sum=1;
第三个月:1生2,sum=2;
第四个月:1生3,2,sum=3;
第五个月:1生4,2生5,3,sum=5
第六个月:1生6,2生7,4,5,3生8,sum=8;
第七个月:1生9,6,2生10,7,3生11,8,3生11,4生12,5生13,sum=13;
....
经过以上分析,可以发现,后一想sum等于前两项sum之和,开始编程:
(1)递归形式
public class Main {
public static int f(int n){
if(n==1 || n==2){
return 1;
}
else
r