非常有趣的遞迴問題(最近面試問到的)

2021-08-20 05:52:42 字數 1152 閱讀 1169

古典問題:第三個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?(意味著生長期為2)

這裡我採用兩種結題思路第一種不考慮遞迴,採用字面解釋進行基於類物件的做法

class rabbit 

public

void

setname(string name)

public

intgetmonth()

public

void

setmonth(int month)

public

boolean

isbltn()

public

void

setbltn(boolean bltn)

public

rabbit(int month,boolean bltn,string name)

public

rabbit()

@override

public string tostring()

}

public

static integer getnumrabbit(integer month)

for (int i = 2; i <= month; i++)

if(!ra.bltn)

ra.month ++ ;

}rabbitlist.addall(incrlist);

system.out.println(rabbitlist.tostring());

}return rabbitlist.size();

}

第二種採用遞迴的方式,首先找到規律

//一月   二月  三月  四月  五月  六月  七月

//1 1 2 3 5 8 13

//則有f(x)=f(x-1)+f(x-2)

為什麼採用遞迴方式,你可以試試比較這兩種方法處理2*12個月的資料,果然遞迴的效率槓槓的

可能問到的面試問題

寫在前面 最近總在找工作和被找工作糾纏著,由於各種因素的影響,想去的公司去不了,能去的公司不了解,我想,這到了我該做出抉擇的時刻了!生活中需要做選擇的地方太多了,要綜合各方面的因素,結合自身興趣,選擇乙個最合適的!grab every chance.1 請你自我介紹一下自己好嗎?2 你覺得你個性上最...

面試反覆被問到的問題 高頻面試問題

方法1 寬度高度已知 父元素相對定位,子元素絕對定位,left 50 top 50 margin left 負的寬度一半 margin top 負的高度一板 方法二 flex布局,寬度高度已知 在父元素身上 display flex justify content center align item...

關於面試問到死鎖的問題

什麼是死鎖 就是在多執行緒的執行中,當乙個執行緒需要獲取到鎖時才能繼續往下執行,如果沒有立即獲取到鎖它是會進入等待狀態的。那麼假設如果執行緒1獲持有著a鎖之後它還想獲取b鎖,但是b鎖被執行緒2所持有,所以執行緒1要進入等待狀態。但是剛好執行緒2想獲取a鎖,被執行緒1所持有,那麼執行緒2也進入等待狀態...