怎么用穷举来做 一个关于兔子的古典题目~~~
有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少。
------解决方案--------------------别搞了,这倒霉的兔子,,,
Java code
public class Rabbit {
public static void fun(int t) {
int r1 = 0, r2 = 2, i=0,temp = 0;
if (t < 1)
return;
while (i <t) {
System.out.println("第"+(i+1)+"月:");
System.out.println(r2);
temp = r1;
r1 = r2;
r2 = temp + r2;
i++;
}
}
public static void main(String[] args) {
System.out.println("兔子数目:");
fun(12);//参数代表第多少个月 这里是12个月
}
}
------解决方案--------------------
------解决方案--------------------public class RabitCounter {
public static void main(String[] args){
int month=7;
int result=0;
int[] currArray={0,0,0};
int[] prevArray={1,1,2};
int end=0;
int pos=0;
if((month/3)*3<month){
end=month/3;
pos=month-((month/3)*3)-1;
}else{
end=month/3-1;
}
if(month<1){
result=0;
}else if(month<=2){
result=1;
}else if(month==3){
result=2;
}else{
for(int i=1;i<=end;i++){
currArray[0]=prevArray[2]+prevArray[0];
System.out.println(currArray[0]);
currArray[1]=currArray[0]+prevArray[1];
System.out.println(currArray[1]);
currArray[2]=currArray[1]+prevArray[2];
System.out.println(currArray[2]);
result=currArray[2];
prevArray=currArray;
System.out.println("=================="+i+"================");
}
result=currArray[pos];
}
System.out.println("到第"+month+"个月共"+result*2+"只兔子");
}
}
------解决方案--------------------格式没弄好,改month就可以得到结果了.
Java code
public class RabitCounter {
public static void main(String[] args){
int month=7;
int result=0;
int[] currArray={0,0,0};
int[] prevArray={1,1,2};
int end=0;
int pos=0;
if((month/3)*3<month){
end=month/3;
pos=month-((month/3)*3)-1;
}else{
end=month/3-1;
}
if(month<1){
result=0;
}else if(month<=2){
result=1;
}else if(month==3){
result=2;
}else{
for(int i=1;i<=end;i++){
currArray[0]=prevArray[2]+prevArray[0];
System.out.println(currArray[0]);
currArray[1]=currArray[0]+prevArray[1];
System.out.println(currArray[1]);
currArray[2]=currArray[1]+prevArray[2];
System.out.println(currArray[2]);
result=currArray[2];
prevArray=currArray;
System.out.println("=================="+i+"================");
}
result=currArray[pos];
}
System.out.println("到第"+month+"个月共"+result*2+"只兔子");
}
}