1. 程式人生 > >對遞迴的淺層理解

對遞迴的淺層理解

遞迴的原理(個人理解) 例: 計算年齡的問題 可以用迴圈 也可以用遞迴 已知第一個人的年齡是10歲,下一個人的年齡是上一個人的年齡加2歲; Age(int n)表示第幾個人的年齡;若求第五個人的年齡。 #include <stdio.h> int Age(int n) { if(n==1) { return 10; } else { return Age(n-1)+2; } } int main() { printf("%d\n",Age(5)); return 0; } 輸出:18; 在計算機的內部進行的過程如圖: 在這裡插入圖片描述 遞迴就是函式自己呼叫自己,我自己感覺迴圈的計算方法是從第一項開始計算一直到最後一項直接給出答案,是從前往後計算。而遞迴,從開始一直呼叫自己,一直到呼叫達到邊界條件,利用邊界條件的值,通過return逐層的往上返回,相當於原路返回,但是返回時一直在層層計算,每一層都返回一個新值,直到返回給主函式。 遞迴的三要素: 1.前進(規模縮小)//感覺就是把一個問題的迴圈規律找到,然後寫出它們的通性。 2.邊界條件//迴圈有迴圈的限制條件,遞迴也有,就是找到使它停止的條件(最後一個條件)。 3.返回段 //就是把最後一個值返回給上一個函式再計算。 這是我對遞迴的理解,如果哪塊理解有誤,請同行指點。