怎么用穷举来做 一个关于兔子的古典题目~~~ 有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 别搞了,这倒霉的兔子,,,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个月 }} 已经在这里给你解答了相当于斐波那契数列问题http://topic.csdn.net/u/20080529/00/34e755ed-39e7-4da7-bc3b-c97d95eb24cf.html 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就可以得到结果了.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+"只兔子"); }} 4楼本来就给出了正确的思路,可惜又自己否定了。典型的斐波那契数列应用关键算法步骤:f(n) = f(n-1) + f(n-3) f(n+2) = f(n+1) + f(n) jave求答 有个问题没明白请大家帮忙 scjp 文件问题,我的程序为什么编译不了?? 关于java多线程的问题? jsp编译错误。。。。请高人指教(在线等待) 请教高手: JAVA的类路径在什么地方? 高分在线,立即给分! 美国软件开发杂志2002西部年会《Effective Java Programming》勇夺图书大奖 有关反编译 求教一个重写的问题 工作流具体是个什么概念 ? 高手来指教一下我 GUI的一些问题,关于JTable和JCombobox的 很急的 请大家帮帮忙
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 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+"只兔子");
}
}
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+"只兔子");
}
}
f(n) = f(n-1) + f(n-3)