A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vincentgood 中级黑马   /  2013-11-19 01:10  /  2604 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   
这是一个菲波拉契数列问题
*/
import java.util.Scanner;
class Demo1
{
public static void main(String[] args)
{
  Scanner input=new Scanner(System.in);
  System.out.println("请输入月份:");
  int month=input.nextInt();
  int born=2,first=0,second=0,third=0;
  for(int i=1;i<=month;i++)
  {
   third=third+second;
   second=first;
   first=born;//这是个什么嘛意思?
   born=third;
   int num=born+first+second+third;
   System.out.println("第"+i+"个月的兔子是:"+num);
  }
}
}

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 谢谢分享

查看全部评分

14 个回复

倒序浏览
这个算法挺经典的。。。
回复 使用道具 举报
我当时是这样解决这个问题的,代码有点长、class Fibonacci  
{  
public  static void main(String []args){  
  
  
    boolean flag=true;  
while(flag){  
System.out.println(" Please enter a month ");  
       Scanner scanner= new Scanner(System.in);  
  String str=scanner.nextLine();  
  int in=Integer.parseInt(str);  
  if(in<=0) System.out.println("月份输入有误,请不要输入负数或0");  
  else  
    System.out.println("该月份的兔子数目为: "+fibn(in)+"(只)");  
}  
}  
  
  
  
  
public static int  fibn(int a){  
if(a==1||a==2)  
    return 2;  
else   
    return fibn(a-1)+fibn(a-2);  
   
  
   
}
回复 使用道具 举报
用递归算法很简单的
回复 使用道具 举报
我也是为了技术分才来的,唉,无语
回复 使用道具 举报
小白来顶
回复 使用道具 举报
Baymax 中级黑马 2015-5-30 09:30:20
7#
学习学习
回复 使用道具 举报
想起高中时学数列了
回复 使用道具 举报
这个题目建议用递归
回复 使用道具 举报
经典,经典,经典
回复 使用道具 举报
用数组也可以
回复 使用道具 举报
支持递归
回复 使用道具 举报
狼王 发表于 2013-11-19 10:50
这个算法挺经典的。。。

经典的递归算法
回复 使用道具 举报
小白进来观摩
回复 使用道具 举报
好东西,顶一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马