遞歸(recursion):程序調用自身的編程技巧。
遞歸滿足2個條件:
1)有反復執行的過程(調用自身)
2)有跳出反復執行過程的條件(遞歸出口)
例1:
n! = n * (n-1) * (n-2) * ...* 1(n>0)
int recursive(int i){ int sum = 0; if (0 == i) return (1); else sum = i * recursive(i-1); return sum;}例2:漢諾塔問題

void hanoi(int n,int p1,int p2,int p3){ if(1==n) cout<<"盤子從"<<p1<<"移到"<<p3<<endl; else { hanoi(n-1,p1,p3,p2); cout<<"盤子從"<<p1<<"移到"<<p3<<endl; hanoi(n-1,p2,p1,p3); }}例3;斐波那契數列
斐波納契數列,又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21、……
這個數列從第三項開始,每一項都等于前兩項之和。
long Fib(int n){ if (n == 0) return 0; if (n == 1) return 1; if (n > 1) return Fib(n-1) + Fib(n-2);}
新聞熱點
疑難解答