[資料結構(Data Structure, DS) 教學教程教材Tutorial] 基礎遞迴
文章推薦指數: 80 %
最大公因數 :兩整數的最大公因數可用歐幾里德演算法(Euclid's Algorithm)[輾轉相除法]求出 · 設計遞迴. Base Case:if (A mod B) == 0 ⇒ return B; · 遞迴演算法. C++ ... [資料結構(DataStructure,DS)]基礎遞迴 最大公因數 用遞迴設計最大公因數(GreatestCommonDivisor,GCD)演算法 最大公因數:兩整數的最大公因數可用歐幾里德演算法(Euclid'sAlgorithm)[輾轉相除法]求出 設計遞迴 BaseCase:if(AmodB)==0returnB; GeneralCase:ohterwisereturnGCD(B,AmodB) 遞迴演算法 C++ C C# Java intGCD(intA,intB) { if((A%B)==0) returnB; else returnGCD(B,A%B); } intGCD(intA,intB) { if((A%B)==0) returnB; else returnGCD(B,A%B); } intGCD(intA,intB) { if((A%B)==0) returnB; else returnGCD(B,A%B); } intGCD(intA,intB) { if((A%B)==0) returnB; else returnGCD(B,A%B); } 問題:若執行GCD(21,56)、GCD(56,21)分別要呼叫GCD()幾次? ∴分別為5次、4次 Copyright©YehYeh.Allrightsreserved.
延伸文章資訊
- 1遞迴
堆疊(Stack)是一種「先進後出」的資料結構,就好比將書本置入箱中,最先放入的書會最後才取出。 C++ 支援函式遞迴呼叫,遞迴之目在於執行重複任務,例如,求最大公因數 ...
- 2[C] 使用遞迴算最大公因數GCD - nini的部落格
[C] 使用遞迴算最大公因數GCD ; #include <stdio.h> #include <stdlib.h> /* recursive GCD */ ; int GCD(int t,in...
- 3利用遞迴方式求最大公因數和求其最小公倍數– jashliao部落格
[C/C++基礎]- 利用遞迴方式求最大公因數和求其最小公倍數 本篇要和(C/P)同好分享利用遞迴方式求最大公因數和求其最小公倍數,有興趣的同好歡迎來(C/P) ...
- 4遞迴/迴圈求解最大公因數
C++實做迴圈. #include < iostream > using namespace std; int gcd(int, int); int main() { int m = 0; in...
- 5輾轉相除法| C++與演算法
輾轉相除法(Euclidean algorithm) ... 輾轉相除法是歷史上最著名的演算法之一,是求兩數的最大公因數(GCD) 極快速的方法。 ... 原理是兩個數字互相減來減去,最後就會剩...