Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C สำหรับอัลกอริธึมพื้นฐานแบบยุคลิด?


ที่นี่เราจะเห็นอัลกอริทึมแบบยุคลิดเพื่อค้นหา GCD ของตัวเลขสองตัว GCD (ตัวหารร่วมที่ยิ่งใหญ่ที่สุด) สามารถพบได้ง่ายโดยใช้อัลกอริทึมแบบยุคลิด มีสองแนวทางที่แตกต่างกัน แบบหนึ่งเป็นแบบวนซ้ำ อีกแบบเป็นแบบเรียกซ้ำ เราจะใช้อัลกอริธึมแบบยุคลิดแบบเรียกซ้ำ

อัลกอริทึม

EuclideanAlgorithm(a, b)

begin
   if a is 0, then
      return b
   end if
   return gcd(b mod a, a)
end

ตัวอย่าง

#include<iostream>
using namespace std;
int euclideanAlgorithm(int a, int b) {
   if (a == 0)
      return b;
   return euclideanAlgorithm(b%a, a);
}
main() {
   int a, b;
   cout << "Enter two numbers: ";
   cin >> a >> b;
   cout << "GCD " << euclideanAlgorithm(a, b);
}

ผลลัพธ์

Enter two numbers: 12 16
GCD 4