基礎算法題——GCD歐幾里得最大公約數算法

歐幾里德算法,又稱輾轉相除法,用於計算兩個整數a,b的最大公約數。

公式:gcd(a,b) = gcd(b,a mod b)

所以我們可以這麼做:

  1. 取大的數爲large,小的數爲small。
  2. 如果large%small == 0,則small即爲gcd。否則進入3。
  3. 將large賦值爲原small,將small賦值爲原large%small。重複2。

C++代碼實現如下:

int gcd(int a, int b) {
		int s = a < b ? a : b;
		int l = a > b ? a : b;
		int tmp = -1;
		while (s) {
			tmp = s;
			s = l%s;
			l = tmp;
		}
		return l;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章