Fibonnacci序列求解方法?

我不要递归算法!... 我不要递归算法! 展开
 我来答
匿名用户
2013-03-29
展开全部
Fibonnacci整数序列指的是一个递归序列,第一项和第二项都是1,从第三项起为前两项之和。即:1,1,2,3,5,8...这种问题一般是用递归解法解决,你不要递归的话只能借助于堆栈去消除递归,下面我给你提供java语言的解决代码:import java.util.*;public class Fibonnacci{ public static void main(String args[]){ Stack<Interger> stack=new Stack<Interger>(); stack.push(new Interger(1)); stack.push(new Interger(1)); int k=1; while(k<=10) for(int i=1;i<=2;i++){ Interger F1=stack.pop(); int f1=F1.intValue(); Interger F2=stack.pop(); int f2=F2.intValue(); Interger temp=new Interger(f1+f2); System.out.println(""+temp.toString); stack.push(temp); stack.push(F2); k++; } }}
匿名用户
2013-03-29
展开全部
你不要递归的话只能借助于堆栈去消除递归这句话不对 答案为使用堆栈的解决方法。实际上对于斐波拉奇数列可以使用递推和递归两种方法。递归为f(n)=f(n-1)+f(n-2)递推就是int n1,n2,n3;n1=1;n2=1;for(i=2;i<n;i++){n3=n1+n2;n1=n2;n2=n3;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火舞蝶衣
2013-03-28 · TA获得超过3818个赞
知道小有建树答主
回答量:1521
采纳率:50%
帮助的人:506万
展开全部
不要递归可以递推啊..
比如你有两个变量n,m记着前两个数a(n-2)和a(n-1),
o记着a(n),那么o=n+m; n=m; m=o;这样就行了.
或是你想做得高级一点可以用矩阵乘法来做,复杂度是O(logN)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式