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

โปรแกรม C เพื่อค้นหา GCD ของตัวเลขโดยใช้ฟังก์ชันแบบเรียกซ้ำ


ปัญหา

ค้นหาตัวหารร่วมมาก (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 ของตัวเลขโดยใช้ฟังก์ชันแบบเรียกซ้ำ

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม 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