菲波拉契数列问题

yyx520aiy520 2011-12-11 12:07:56
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
想了N久了 没写出来
大侠们指点指点!!
...全文
434 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyx520aiy520 2011-12-15
  • 打赏
  • 举报
回复
原来程序设计都是楼上这样的人能干的
那么请问楼上你又设计了多么牛B的程序了呢?
还是在使用着别人写好的类库呢
百思不得其解....
zqfddqr 2011-12-12
  • 打赏
  • 举报
回复
lxy15329 2011-12-12
  • 打赏
  • 举报
回复
sfeng1990的做法是最好的,减少了递归计算的次数,仅用三个变量就可以完成任务。有一次面试就是差不多的题目,大家所熟知的爬楼梯问题,开始我就用纯递归,面试官让减少计算次数,那我就用数组保存每一次的计算结果,他又说这是从上至下的计算,浪费了空间,能不能减少空间,我就用从下到上去计算,为了减少空间开销,就采用了sfeng1990的做法,面试官很满意
Alexander 2011-12-12
  • 打赏
  • 举报
回复
斐波那契数列
一般在教材里被当作递归算法的示例,可说是基础中的基础。

建议LZ别看上面给的代码,自己对照着数列通式思考下。如果一点思路也没有的话,说句不太中听的话:可能LZ应该考虑下自己是否适合做程序设计这行了。
「已注销」 2011-12-12
  • 打赏
  • 举报
回复
这不是明显的近亲结婚吗???哈哈
jajavaja 2011-12-11
  • 打赏
  • 举报
回复
嗯,就是楼上这样,简单的递归就成了
huangxw000 2011-12-11
  • 打赏
  • 举报
回复
int fib(int i) {  
if (i < 1) {
return 0;
}

if (i==1||i==2) {
return 1;
}

return fib(i - 1) + fib(i - 2);
}
trnx 2011-12-11
  • 打赏
  • 举报
回复
斐波那契数列一般都用递归算法啊
yyx520aiy520 2011-12-11
  • 打赏
  • 举报
回复
能解释解释吗?
dddsfdfgfdgfdg 2011-12-11
  • 打赏
  • 举报
回复
一楼的 看不懂额 求解释
24K純帥 2011-12-11
  • 打赏
  • 举报
回复
public class Fibonacci
{
public static int fibonacci(int n)
{
if(n<=1) return 1;
else return fibonacci(n-1)+fibonacci(n-2);
}
public static void main(String[] args)
{
Fibonacci.fibonacci(5));
}
}
sfeng1990 2011-12-11
  • 打赏
  • 举报
回复

public class MainClass
{
public static long fib(long n)
{
long n0=0;
long n1=2;
long n2=2;
if(n==0)
{
return n0;
}
else if(n==1)
{
return n1;
}
else if(n==2)
{
return n2;
}
for(int i=3;i<=n;i++)
{
n0=n1;
n1=n2;
n2=n0+n1;
}
return n2;
}
public static void main(String args[])
{
System.out.println(fib(10));
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧