[資料結構(Data Structure, DS)] 基礎遞迴
最大公因數
- 用遞迴設計最大公因數(Greatest Common Divisor, GCD)演算法
- 最大公因數:兩整數的最大公因數可用歐幾里德演算法(Euclid's Algorithm)[輾轉相除法]求出
- 設計遞迴
- Base Case:if (A mod B) == 0 return B;
- General Case:ohterwise return GCD( B, A mod B )
- 遞迴演算法
int GCD(int A, int B) { if( (A % B) == 0) return B; else return GCD(B, A%B); }
int GCD(int A, int B) { if( (A % B) == 0) return B; else return GCD(B, A%B); }
int GCD(int A, int B) { if( (A % B) == 0) return B; else return GCD(B, A%B); }
int GCD(int A, int B) { if( (A % B) == 0) return B; else return GCD(B, A%B); }
- 問題:若執行GCD(21,56)、GCD(56,21)分別要呼叫GCD( )幾次?
- ∴分別為5次、4次