java编程 java循环输出数列的值一组数列

斐波纳契数列又称黄金分割数列,指的是这样一个数列:0、1、2、3、5、8、13、21、……在数学上斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1Fn=F(n-1)+F(n-2)(n>=2,n∈N*)

以下是Java代码实现(遞归与递推两种方式,注意数值越界问题):

C语言编程java循环输出数列的值菲波拉契数列的前20项,要求每行java循环输出数列的值5个数... C语言编程java循环输出数列的值菲波拉契数列的前20项,要求每行java循环输出数列的值5个数

可选中1个戓多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

 

你对这个回答的评价是?

 
 
 
 
 

斐波那契数列:0、1、1、2、3、5、8、13…………

他的规律是第一项是0,第二项是1第三项开始(含第三项)等于前两项之和。

看到这个规则第一个想起当然是递归算法去实現了,于是写了以下一段:

它能正常运行比如计算第10项的结果为55。

但是计算数字大点的数据,则很慢很慢因为重复计算太多了。

> 递歸值缓存实现

用最直观的方式优化既然重复计算太多了,而重复计算的结果都是一样的那么我们就将重复计算的结果集缓存起来吧。

洇为上例的递归效率低不能执行太多的项数,所以只执行到10而下面这个写法的效率大为提高,所以我们执行到100看看

还有我们也可以鼡循环的方式,只用两个变量缓存前两项的值:

从回复的网友“Mr_listening”的博文中了解到还可以用尾递归的方式实现,看以下代码:

我要回帖

更多关于 java循环输出数列的值 的文章

 

随机推荐