黑马程序员技术交流社区
标题:
请问这个题目有什么简便方法
[打印本页]
作者:
默默地回忆
时间:
2015-1-17 22:32
标题:
请问这个题目有什么简便方法
本帖最后由 默默地回忆 于 2015-1-17 22:55 编辑
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
我写出的方法觉得太累赘了,请各位大神指点一下
public static int harePrintNum(int month)
{
//记录兔子的数量
int sum=1;
//记录上个月兔子的数量
int num1=1;
//记录上上个月兔子的数量
int num2=1;
if(month==1||month==2)
return 1;
for(int x=3;x<=month;x++)
{
num2=num1;
num1=sum;
sum=num1+num2;
}
return sum;
}
作者:
(_演绎、青春
时间:
2015-1-17 22:42
看看这个帖子吧
解答兔子问题
http://bbs.itheima.com/thread-163215-1-1.html
(出处: 黑马程序员IT技术论坛)
作者:
默默地回忆
时间:
2015-1-17 22:53
谢谢,用递归方法确实简单很多,就是还么有学到递归呢,这个方法要是自己想真的很难想到
作者:
希冀
时间:
2015-1-18 00:56
public class Prog1{
publicstatic void main(String[] args){
intn = 10;
System.out.println("第"+n+"个月兔子总数为"+fun(n));
}
privatestatic int fun(int n){
if(n==1|| n==2)
return 1;
else
return fun(n-1)+fun(n-2);
}
}
作者:
福城小宝
时间:
2015-1-18 01:16
public class Text{
publicstatic void main(String[] args){
System.out.println(fun(10));
}
private static int fun(int n){
if(n==1|| n==2){
return 1;
} else{
return fun(n-1)+fun(n-2);
}
}
}
作者:
xiao飞
时间:
2015-1-18 09:12
递归是简单,但是不能算太大的数,因为要避免内存溢出
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2