1.遞歸函數概述及用法
- 一個函數在它的函數體內調用它自身稱為遞歸調用。這種函數稱為遞歸函數。C語言允許函數 的遞歸調用。在遞歸調用中,主調函數又是被調函數。執(zhí)行遞歸函數將反復調用其自身,每調用 一次就進入新的一層。
void function(int x)
{
function(x);
}
- 這個函數是一個遞歸函數。但是運行該函數將無休止地調用其自身,這當然是不正確的。為了防 止遞歸調用無終止地進行,必須在函數內有終止遞歸調用的手段。常用的辦法是加條件判斷,滿 足某種條件后就不再作遞歸調用,然后逐層返回。
2.遞歸函數構成條件
- 自己調用自己
- 存在一個條件能夠讓遞歸結束
- 問題的規(guī)模能夠縮小
- 能用循環(huán)實現的功能,用遞歸都可以實現
- 遞歸就是自己搞自己,性能差
- 注意:遞歸一定要有一個明確的結束條件,否則會造成死循環(huán)
3.實例
??:
//有5個人坐在一起,問第5個人多少歲?他說比第4個人大兩歲。問 第4個人歲數,他說比第3個人大兩歲。問第3個人,又說比第2個 人大兩歲。問第2個人,說比第1個人大兩歲。最后問第1個人, 他說是10歲。請問第5個人多大?
//傳入的n表示第幾個人
int getAge(int n)
{
int age ;
if(n==1){
age = 10;
}else{
age = getAge(n-1)+2;
}
return age;
}