黑马程序员技术交流社区
标题: 编程题 [打印本页]
作者: 轩辕邵宇 时间: 2014-11-17 23:16
标题: 编程题
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
作者: 天天小志 时间: 2014-11-17 23:23
这个……
作者: 王立腾 时间: 2014-11-17 23:47
class New1
{
public static void main(String[]sgrs)
{
System.out.println(duiShu(10));
}
//定义一个duiShu方法,用来计算每月的对数。
public static int duiShu(int n)
{
/*
从兔子的前几个月对数分析规律。
前两个月都为1.
从第三月起,每月的对数等于该月的前两个月的对数和。
所以有该月的对数=其前两个月的对数和,duiShu(n)==duiShu(n-1)+duiShu(n-2);
*/
if(n==1||n==2)
{
return 1;
}else
{
return duiShu(n-1)+duiShu(n-2);
}
}
}
作者: 轩辕邵宇 时间: 2014-11-17 23:48
腾哥哥 太用功了把
作者: 王立腾 时间: 2014-11-17 23:52
你在逗我{:3_46:}
作者: hailong 时间: 2014-11-17 23:55
其实就是一个斐波那契数列,可以使用递归计算- public class Test1 {
- public static void main(String[] args) {
- System.out.println(getRabbit(12));
- }
- public static int getRabbit(int num){
- if(num == 1)
- return 1;
- if(num == 2)
- return 1;
- return getRabbit(num-1)+getRabbit(num-2);
- }
- }
复制代码
作者: LiuWei1989 时间: 2014-11-18 00:00
1.public class TestOne {
2.
3. public static void main(String[] args) {
4. int rabbitNum = 1;
5. for(int i = 1 ; i < 20 ; i++){
6. rabbitNum = getMonthNum(i);
7. System.out.println("兔子第 "+i+" 个月的总数为:"+rabbitNum);
8. }
9.
10. }
11.
12. public static int getMonthNum(int x){
13. int initRabbit = 1;
14.
15. if(x == 1 || x == 2){
16. return initRabbit;
17. }
18.
19. initRabbit = getMonthNum(x-1) + getMonthNum(x-2);
20.
21. return initRabbit;
22. }
23.}
//我也找的 还在学基础 希望帮到你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |