浏览 1788 次
锁定老帖子 主题:斐波那契数列
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-26
最后修改:2009-12-09
Fibonacci為1200年代的歐洲數學家,在他的著作中曾經提到:「若有一隻免子每個月生一隻小免子,一個月後小免子也開始生產。起初只有一隻免子,一個月後就有兩隻免子,二個月後有三隻免子,三個月後有五隻免子(小免子投入生產)......」。 如果不太理解這個例子的話,舉個圖就知道了,注意新生的小免子需一個月成長期才會投入生產,類似的道理也可以用於植物的生長,這就是Fibonacci數列,一般習慣稱之為費氏數列,例如以下: 1、1 、2、3、5、8、13、21、34、55、89...... def fibonacci(n) unless n>=0 puts "请输入一个正数!" end if(n==0 ||n==1) 1 else fibonacci(n-1)+fibonacci(n-2) end end n=gets.to_i puts fibonacci(n) 上面是之前写的,用的是递归,说实话,递归看起来简单,但是不是很好理解(可能是因为我的理解能力差的缘故)我觉得还是递推更加直观一些,于是写了下面的代码: def fab(n) a,b=1,1 print a,",",b,"," for i in 3..n-1 b,a=a+b,b print b,',' end print a+b,"\n" end fab(10) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |