古典問題:有一對兔子血淌,從出生后第3個月起每個月都生一對兔子矩欠,小兔子長到第三個月后每個月又生一 對兔子,假如兔子都不死悠夯,問每個月的兔子總數(shù)為多少癌淮?
這個問題說的是一對兔子,最后兔子總數(shù)需不需要乘以2沦补?
我居然寫的
int sum=2
for(int i=3;i<=n;i++){
int a = i/3;
sum=sum+2^a;}
這樣算得兔子(按只)的規(guī)律為 2,2,4该默,6,8;是錯的
優(yōu)化:
int sum=2
for(int i=3;i<=n;i++){
int a = i/3;
int b=i%3;
if(b==0){
sum=sum+2^a;
}else{
sum=sum+2*b;
}
這樣算得兔子(按只)的規(guī)律為 2,2,4策彤,6,8;是錯的
正確解法: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.... 從第3項開始為前2項之和
public static int f(int i) {
//前2個月為1
if(i==1 || i==2) {
return 1;
}
return f(i-1)+f(i-2);
}