是否所有的循環(huán)函數(shù)都可用遞歸來(lái)實(shí)現(xiàn)呢?
網(wǎng)友解答: 先說(shuō)一下個(gè)人理解-是的,所有的循環(huán)函數(shù)都可以用遞歸來(lái)實(shí)現(xiàn)。至少,我目前是這么認(rèn)為的。所謂遞歸是是直接或間接調(diào)用函數(shù)本身,則訪函數(shù)稱為遞歸函數(shù)我們學(xué)習(xí)的時(shí)候接觸的比較多的是一種
先說(shuō)一下個(gè)人理解-是的,所有的循環(huán)函數(shù)都可以用遞歸來(lái)實(shí)現(xiàn)。至少,我目前是這么認(rèn)為的。
所謂遞歸是是直接或間接調(diào)用函數(shù)本身,則訪函數(shù)稱為遞歸函數(shù)我們學(xué)習(xí)的時(shí)候接觸的比較多的是一種叫斐波那契數(shù)列,在這里我們以1到100的求和為例,第一種是通過(guò)循環(huán)實(shí)現(xiàn)的,第二種則通過(guò)遞歸實(shí)現(xiàn)。
圖1,求和實(shí)現(xiàn)的方法
圖2,遞歸實(shí)現(xiàn)的方法
從上面對(duì)比看出,兩者都可以實(shí)現(xiàn)相應(yīng)的目的,但是遞歸函數(shù)給人的感覺(jué)人精簡(jiǎn)些,沒(méi)錯(cuò),遞歸函數(shù)的優(yōu)點(diǎn)在于簡(jiǎn)單、邏輯清晰,正因?yàn)?,邏輯清晰,我們有的時(shí)候比較難于一下子理解透。
所以,在我看來(lái)循環(huán)函數(shù)是可以都用遞歸函數(shù)實(shí)現(xiàn),只要你邏輯夠強(qiáng)。當(dāng)然需要注意的是,遞歸是一種棧的調(diào)用,需要防止棧溢出,棧的大小不是無(wú)限的。