黑马程序员技术交流社区

标题: 一个菲波拉契数列问题 [打印本页]

作者: vincentgood    时间: 2013-11-19 01:10
标题: 一个菲波拉契数列问题
/*
题目:古典问题:有一对兔子,从出生后第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);
  }
}
}

作者: 狼王    时间: 2013-11-19 10:50
这个算法挺经典的。。。
作者: 小骁叔    时间: 2013-11-19 10:53
我当时是这样解决这个问题的,代码有点长、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);  
   
  
   
}
作者: 小骁叔    时间: 2013-11-19 10:54
用递归算法很简单的
作者: 小骁叔    时间: 2013-11-19 10:55
我也是为了技术分才来的,唉,无语
作者: 无所谓啦    时间: 2014-5-27 17:28
小白来顶
作者: Baymax    时间: 2015-5-30 09:30
学习学习
作者: hejin67410    时间: 2015-9-5 22:11
想起高中时学数列了

作者: 1826888717    时间: 2015-10-29 14:46
这个题目建议用递归
作者: Makeit    时间: 2015-11-7 22:26
经典,经典,经典
作者: waimifeier    时间: 2015-11-21 00:38
用数组也可以
作者: android_921    时间: 2015-12-19 00:45
支持递归
作者: android_921    时间: 2015-12-19 21:38
狼王 发表于 2013-11-19 10:50
这个算法挺经典的。。。

经典的递归算法
作者: novazjd    时间: 2016-2-5 23:20
小白进来观摩
作者: 15266913109    时间: 2016-2-10 13:15
好东西,顶一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2