遞歸函數(shù)的例子 講一下c語言中遞歸函數(shù)的使用方法?
講一下c語言中遞歸函數(shù)的使用方法?遞歸函數(shù)有三個要求:1,遞歸的終點,即遞歸函數(shù)的出口2,連續(xù)遞歸調(diào)用自身3,遞歸函數(shù)的主要內(nèi)容,即遞歸函數(shù)需要做什么PS:3可以放在2的前面或后面,通常1放在前面。另
講一下c語言中遞歸函數(shù)的使用方法?
遞歸函數(shù)有三個要求:
1,遞歸的終點,即遞歸函數(shù)的出口
2,連續(xù)遞歸調(diào)用自身
3,遞歸函數(shù)的主要內(nèi)容,即遞歸函數(shù)需要做什么
PS:3可以放在2的前面或后面,通常1放在前面。另外,2和3可以根據(jù)不同的需要進行組合。例如,有時遞歸函數(shù)的主體是返回調(diào)用底層函數(shù)的結(jié)果。
具體示例如下:
void fun(int n){if(n<=0)return//1這是遞歸的終點,即退出fun(n-1)//2,遞歸函數(shù)本身調(diào)用cout<< n<<endl//3遞歸函數(shù)的主要內(nèi)容}
2,3合并case
int fun(int n){if(n<=0)return 0 return fun(n-1)fun(n-2)//2循環(huán)和遞歸的本質(zhì)區(qū)別在于內(nèi)存的使用。遞歸是方法本身。隨著遞歸次數(shù)的增加,內(nèi)存消耗也在增加。當(dāng)我們編寫代碼時,內(nèi)存是一個非常重要的部分。我們盡量減少內(nèi)存的消耗,以免浪費系統(tǒng)資源。循環(huán)占用的內(nèi)存非常小,每個循環(huán)都會釋放之前分配的內(nèi)存,但是很多遞歸函數(shù)不能通過循環(huán)來實現(xiàn),所以我們必須考慮要實現(xiàn)的函數(shù)。如果函數(shù)不能用非遞歸的方法來完成,我們就不會刻意修改它們。