ปัญหา
ค้นหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันแบบเรียกซ้ำในภาษาการเขียนโปรแกรม C
วิธีแก้ปัญหา
วิธีแก้ปัญหาในการหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันแบบเรียกซ้ำมีดังนี้ -
อัลกอริทึม
อ้างถึงอัลกอริธึมที่ระบุด้านล่างเพื่อค้นหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันแบบเรียกซ้ำ
ขั้นตอนที่ 1 − กำหนดฟังก์ชันเรียกซ้ำ
ขั้นตอนที่ 2 − อ่านจำนวนเต็มสองตัว a และ b.
ขั้นตอนที่ 3 − เรียกฟังก์ชันแบบเรียกซ้ำ
a. if i>j b. then return the function with parameters i,j c. if i==0 d. then return j e. else return the function with parameters i,j%i.
แผนภูมิการไหล
ผังงานแสดงไว้ด้านล่างสำหรับอัลกอริทึมเพื่อค้นหาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันแบบเรียกซ้ำ
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อ หาตัวหารร่วมมาก (GCD) สำหรับตัวเลขสองตัวที่ระบุโดยใช้ฟังก์ชันแบบเรียกซ้ำ −
#include<stdio.h> #include<math.h> unsigned int GCD(unsigned i, unsigned j); int main(){ int a,b; printf("Enter the two integers: \n"); scanf("%d%d",&a,&b); printf("GCD of %d and %d is %d\n",a,b,GCD(a,b)); return 0; } /* Recursive Function*/ unsigned int GCD(unsigned i, unsigned j){ if(j>i) return GCD(j,i); if(j==0) return i; else return GCD(j,i%j); }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Enter the two integers: 4 8 GCD of 4 and 8 is 4