โปรแกรม C ++ เพื่อค้นหา GCD

Porkaerm C Pheux Khnha Gcd



GCD เรียกว่า ' ตัวหารร่วมมาก ” (จีซีดี). มักปรากฏในการคำนวณและเทคนิคต่างๆ เป็นแนวคิดพื้นฐานทางคณิตศาสตร์ที่ใช้ในการคำนวณจำนวนบวกสูงสุดซึ่งเป็นผลมาจากการหารระหว่างจำนวนตั้งแต่สองจำนวนขึ้นไปที่มีเศษเหลือศูนย์เหลืออยู่

ในคู่มือนี้ เราจะวิเคราะห์รูปแบบต่างๆ เพื่อค้นหา GCD ด้วยวิธีการใน C++

โปรแกรม C ++ เพื่อค้นหา GCD

ในภาษา C++ หากต้องการหาจำนวนเต็มบวกที่มากที่สุดซึ่งหารสองจำนวนที่ให้มาโดยไม่เหลือเศษ ให้ใช้ GCD (ตัวหารร่วมมาก) ช่วยในการลดความซับซ้อนของเศษส่วนและแก้ไขปัญหาที่เกี่ยวข้องกับปัจจัยทั่วไป ฟังก์ชัน GCD ในโปรแกรมจะคืนค่าตัวประกอบร่วมมากระหว่างจำนวนเต็มสองตัวที่ป้อนเข้า







C++ มีหลายวิธีในการคำนวณ GCD ของตัวเลขสองตัว บางส่วนของพวกเขาอธิบายไว้ด้านล่าง



วิธีที่ 1: ค้นหา GCD โดยใช้ Euclidean-Algorithm ใน C++

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



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





#รวมถึง
โดยใช้ เนมสเปซ มาตรฐาน ;

ที่นี่:

  • <ไอโอสตรีม> ” ไฟล์ส่วนหัวประกอบด้วยสตรีมอินพุตและเอาต์พุตซึ่งเปิดใช้งานการดำเนินการอินพุตและเอาต์พุต
  • ใช้เนมสเปซมาตรฐาน ” เป็นคำสั่งที่ช่วยให้ใช้ชื่อที่มาจากเนมสเปซ std ได้ง่ายขึ้น

จากนั้นให้ประกาศว่า “ find_GCD() ” ฟังก์ชันที่รับพารามิเตอร์จำนวนเต็มสองตัว “ มูลค่า1 ' และ ' ค่า2 ” ตามลำดับ ถัดไป ใช้ปุ่ม “ ถ้า ” คำสั่งเพื่อตรวจสอบ “ มูลค่า1 ” ที่จะยิ่งใหญ่เสมอและเท่ากับ “ ค่า2 '. หลังจากนี้ “ ในขณะที่ ” วนซ้ำ (Loop) ใช้คืนค่าต่อเนื่องไปจนครบเงื่อนไข “ ค่า2 != 0 ” กลายเป็นเท็จ ภายในลูป ' while' 'value1' จะถูกหารด้วย 'value2' และบันทึกผลลัพธ์ใน ' ส่วนที่เหลือ ' ตัวแปร.



ค่าของ “value1” และ “value2” ได้รับการอัปเดตเมื่อ “value1” กลายเป็นค่าปัจจุบันของ “value2” และ “value2” กลายเป็น “ส่วนที่เหลือ” ที่คำนวณได้ ลูปจะดำเนินต่อไปจนกว่า “value2” จะกลายเป็น 0 ณ จุดนั้นพบ GCD ด้วยอัลกอริทึมแบบยุคลิด สุดท้าย คืนค่า “value1” เป็นฟังก์ชัน “find_GCD”

นานาชาติ find_GCD ( นานาชาติ ค่าที่ 1, นานาชาติ ค่า2 ) {
ถ้า ( ค่า2 > มูลค่า1 ) {
แลกเปลี่ยน ( ค่าที่ 1 ค่าที่ 2 ) ;
}
ในขณะที่ ( ค่า2 ! = 0 ) {
นานาชาติ ส่วนที่เหลือ = มูลค่า1 % ค่า2 ;
มูลค่า1 = ค่า2 ;
ค่า2 = ส่วนที่เหลือ ;
}

กลับ มูลค่า1 ;
}

ใน ' หลัก() ” ฟังก์ชัน ประกาศ “ หมายเลข 1 ' และ หมายเลข 1 ” ตัวแปร จากนั้นใช้ปุ่ม “ ศาล ” คำสั่งเพื่อรับข้อมูลจากผู้ใช้ ต่อไป “ การกิน วัตถุ ” ใช้เพื่ออ่านจำนวนเต็มที่ป้อนจากอินพุตมาตรฐานและบันทึกไว้ในตัวแปร “num1” และ “num2” หลังจากนั้นเรียกว่า “ find_GCD() ” วิธีการที่ใช้ “num1” และ “num2” เป็นพารามิเตอร์ และเก็บผลลัพธ์ไว้ใน “ my_result ' ตัวแปร. สุดท้าย ใช้ “ ศาล ' กับ ' << ” ตัวดำเนินการแทรกเพื่อพิมพ์ GCD โดยประมาณบนคอนโซล:

นานาชาติ หลัก ( ) {
นานาชาติ นัมเบอร์ 1, นัมเบอร์ 2 ;
ศาล << 'ใส่เลขสองตัว' << จบ ;
การกิน >> หมายเลข 1 >> หมายเลข 2 ;

นานาชาติ my_result = find_GCD ( นัมเบอร์ 1, นัมเบอร์ 2 ) ;
ศาล << 'GCD ของจำนวนเต็มสองจำนวนโดยใช้อัลกอริทึมแบบยุคลิด: ' << my_result << จบ ;

กลับ 0 ;
}

เอาต์พุต

วิธีที่ 2: ค้นหา GCD ซ้ำใน C ++

อีกวิธีหนึ่งในการคำนวณ GCD ใน C++ คือการใช้คำสั่ง if แบบเรียกซ้ำ ลองดูตัวอย่างโปรแกรมง่ายๆ ด้านล่างใน C++

ในโค้ดด้านล่าง ให้กำหนด “ คำนวณ_Gcd() ” ฟังก์ชันคำนวณ GCD ของตัวเลขสองตัว ใช้พารามิเตอร์จำนวนเต็มสองตัว “ ' และ ' '. มันจะตรวจสอบว่า “ ” เท่ากับ “ 0 ” จากนั้นคืนค่า “ '. มิฉะนั้น “ คำนวณ_Gcd() ” ฟังก์ชันเรียกซ้ำด้วยพารามิเตอร์ “ ' และ ' ก%ข ”:

#รวมถึง
โดยใช้ เนมสเปซ มาตรฐาน ;
นานาชาติ คำนวณ_Gcd ( นานาชาติ ก, นานาชาติ )
{
ถ้า ( == 0 )
กลับ ;
กลับ คำนวณ_Gcd ( ข, ก % ) ;
}

ถัดไป ประกาศตัวแปร “num1” และ “num2” ภายใน “ หลัก() ' การทำงาน. หลังจากนี้ ให้ใช้ปุ่ม “ ศาล คำสั่ง ” เพื่อแสดง “ ป้อนตัวเลขสองตัว ” ข้อความ จากนั้น “ การกิน ” วัตถุอ่านและบันทึกตัวแปรที่ป้อนโดยผู้ใช้ เดินหน้าต่อไป เรียก “ คำนวณ_Gcd() ” ฟังก์ชันที่มีค่าอินพุต “num1” และ “num2” บันทึกไว้ใน “ ผลลัพธ์ ” ตัวแปร และใช้ตัว “ ศาล ” เพื่อแสดงค่าผลลัพธ์:

นานาชาติ หลัก ( )
{
นานาชาติ นัมเบอร์ 1, นัมเบอร์ 2 ;
ศาล << 'ป้อนตัวเลขสองตัว: ' <> หมายเลข 1 >> หมายเลข 2 ;
นานาชาติ ผลลัพธ์ = คำนวณ_Gcd ( นัมเบอร์ 1, นัมเบอร์ 2 ) ;
ศาล << 'GCD ของตัวเลขสองตัวโดยใช้วิธีเรียกซ้ำ' << ผลลัพธ์ << จบ ;
กลับ 0 ;
}

เอาต์พุต

วิธีที่ 3: ค้นหา GCD ที่ใช้สำหรับลูปใน C ++

โปรแกรมด้านล่างใช้ลูป 'for' เพื่อค้นหาตัวหารร่วมที่ใหญ่ที่สุด:

#รวม
โดยใช้ เนมสเปซ มาตรฐาน ;
นานาชาติ หลัก ( ) {
นานาชาติ ค่า 1, ค่า 2, gcd ;
ศาล << 'ป้อนค่าประเภทจำนวนเต็มสองค่า' <> มูลค่า1 >> ค่า2 ;
ถ้า ( ค่า2 > มูลค่า1 ) {
นานาชาติ อุณหภูมิ = ค่า2 ;
ค่า2 = มูลค่า1 ;
มูลค่า1 = อุณหภูมิ ;
}

สำหรับ ( นานาชาติ ฉัน = 1 ; ฉัน <= ค่า2 ; ++ ฉัน ) {
ถ้า ( มูลค่า1 % ฉัน == 0 && ค่า2 % ฉัน == 0 ) {
จีซีดี = ฉัน ;
}
}
ศาล << 'GCD ของสองค่าที่ใช้สำหรับลูป: ' << จีซีดี ;

กลับ 0 ;
}

ในโค้ดข้างต้น ก่อนอื่น ให้ประกาศตัวแปรจำนวนเต็มสามตัว “ มูลค่า1 ”, “ ค่า2 ', และ ' จีซีดี ' ข้างใน ' หลัก() ' การทำงาน. ถัดไป ใช้ปุ่ม “ ศาล ” วัตถุเพื่อรับค่าอินพุตจากผู้ใช้ ค่าอินพุตของผู้ใช้จะถูกบันทึกไว้ใน “value1” และ “value2” โดยใช้ปุ่ม “ >> ” ตัวดำเนินการกับ “ การกิน ' วัตถุ. จากนั้นใช้ปุ่ม “ ถ้า ” คำสั่งเพื่อตรวจสอบว่า “ มูลค่า1 ' เป็น ' > ' กว่า ' ค่า2 ” โดยตรวจสอบว่า “ อุณหภูมิ ” ตัวแปรเก็บค่า “value2” แล้วกำหนดให้กับ “value1” ถึง “value2” และ “temp” เป็น “value1” หลังจากนี้ ลูป 'for' จะวนซ้ำจนถึงด้านใน ' ถ้า ” เงื่อนไขเป็นที่น่าพอใจ สุดท้าย ใช้ “ ศาล ” คำสั่งเพื่อพิมพ์ผลลัพธ์ ดังต่อไปนี้:

คุณได้เรียนรู้เกี่ยวกับวิธีการเขียนโปรแกรม C++ สำหรับการค้นหา GCD

บทสรุป

GCD เป็นแนวคิดที่สำคัญทางคณิตศาสตร์ที่ช่วยให้ผู้ใช้ระบุจำนวนเต็มบวกที่ใหญ่ที่สุดที่หารตัวเลขทั้งสองโดยไม่มีเศษเหลือ มีหลายวิธีที่ใช้เพื่อค้นหา GCD ใน C++ เช่น “ อัลกอริทึมแบบยุคลิด”, “ เรียกซ้ำ ', และ ' สำหรับ ” วนซ้ำ ในคู่มือนี้ เราได้แสดงวิธีการเขียนโปรแกรม C++ สำหรับการค้นหา GCD