ปัญหา
ค้นหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันไม่เรียกซ้ำ
วิธีแก้ปัญหา
มีการอธิบายด้านล่างถึงวิธีการหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันไม่เรียกซ้ำ
อัลกอริทึม
อ้างถึงอัลกอริธึมที่ระบุด้านล่างเพื่อค้นหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันไม่เรียกซ้ำ
ขั้นตอนที่ 1 − เริ่มต้น
ขั้นตอนที่ 2 − อ่านจำนวนเต็ม a และ b
ขั้นตอนที่ 3 − เรียกใช้ฟังก์ชัน G=GCD(a,b) ขั้นตอนที่ 6
ขั้นตอนที่ 4 − พิมพ์ค่า G
ขั้นตอนที่ 5 − หยุด
ขั้นตอนที่ 6 − เรียกฟังก์ชัน:GCD(a,b)
a. Initialize the i=1, j, remainder b. Remainder=i-(i/j*j) c. Remainder=0 return j else goto step 4 d. GCD(G,remainder) return to main program
ผังงาน
ด้านล่างนี้คือแผนผังลำดับงานสำหรับอัลกอริทึมเพื่อค้นหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันไม่เรียกซ้ำ
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อ หาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันไม่เรียกซ้ำ −
#include<stdio.h> #include<conio.h> #include<math.h> int gcdnonR(int i,int j){ int rem; rem=i-(i/j*j); if(rem==0) return j; else gcdnonR(j,rem); } void main(){ int a,b; printf("enter the two numbers:"); scanf("%d%d",&a,&b); printf("GCD of %d",gcdnonR(a,b)); getch(); }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
enter the two numbers:10 30 GCD of 10