斐波那契数java实现_斐波那契数列Java实现[剑指offer]
描述
大家都知道斐波那契數(shù)列,現(xiàn)在要求輸入一個(gè)整數(shù)n,請(qǐng)你輸出斐波那契數(shù)列的第n項(xiàng)(從0開(kāi)始,第0項(xiàng)為0)。
n<=39
題解
1.遞歸實(shí)現(xiàn)
采用遞歸的方式進(jìn)行實(shí)現(xiàn)時(shí),從第n個(gè)節(jié)點(diǎn)向下遞歸時(shí),存在重復(fù)節(jié)點(diǎn),當(dāng)n越大時(shí),遞歸越慢,往往會(huì)超出題目要求的時(shí)間限制
2.非遞歸實(shí)現(xiàn)
描述
為避免重復(fù)計(jì)算,采用自上而下的方式進(jìn)行計(jì)算
code
public class Solution {
public int Fibonacci(int n) {
int first=0;
int second=1;
int res=0;
int[] result={0,1};
if(n<2){
return result[n];
}
for(int i=1;i
res=first+second;
first=second;
second=res;
}
return res;
}
}
斐波那契數(shù)列的變形
一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法(先后次序不同算不同的結(jié)果)
一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)……它也可以跳上n級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法。
我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請(qǐng)問(wèn)用n個(gè)21的小矩形無(wú)重疊地覆蓋一個(gè)2*n的大矩形,總共有多少種方法?
總結(jié)
以上是生活随笔為你收集整理的斐波那契数java实现_斐波那契数列Java实现[剑指offer]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php改密后joomla无法登陆,php
- 下一篇: java 随机生成图,Java中的快速实