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

โปรแกรมหาจำนวนคำตอบในสมการกำลังสองใน C++


ในปัญหานี้ เราได้รับสมการกำลังสองของประเภท ax2 + bx + c โดยที่ a,b และ c เป็นค่าคงที่ งานของเราคือสร้างโปรแกรมเพื่อค้นหาจำนวนคำตอบในสมการกำลังสองใน C++

คำอธิบายปัญหา − ในที่นี้ เราต้องหาจำนวนคำตอบของสมการกำลังสองที่มีได้ไม่เกิน 2 คำตอบ

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

ตัวอย่างที่ 1:

ป้อนข้อมูล − 3x 2 + 7x + 4

ผลผลิต − 2

คำอธิบาย - คำตอบของสมการทั้งสองคือ 1 และ 4/3

ตัวอย่างที่ 2:

ป้อนข้อมูล − x 2 - 4x + 4

ผลผลิต − 1

คำอธิบาย - คำตอบของสมการคือ 2

ป้อนข้อมูล − 2x 2 + 2x + 2

ผลผลิต − 0

คำอธิบาย:ไม่มีคำตอบของสมการ

แนวทางการแก้ปัญหา:

ในการหาจำนวนคำตอบ เราต้องการธรรมชาติของคำตอบของสมการกำลังสอง ซึ่งหาได้จากค่า discriminant (D)

รากของสมการถูกกำหนดโดยสูตร

= −𝑏 ± √𝑏.
D = ( (b^2) - (4*a*c) )

ดังนั้นค่าดิสคริมิแนนต์จึงให้จำนวนรูตของสมการกำลังสอง

  • ถ้า D =0 จำนวนคำตอบคือ 1

  • ถ้า D> 0 จำนวนคำตอบคือ 2

  • ถ้า D <0 จำนวนของการแก้ปัญหาคือ 0 เนื่องจากค่าของรูทของจำนวนลบเป็นจำนวนจินตภาพ

อัลกอริทึม:

  • ขั้นตอนที่ 1 หาค่าของ D, D =((b^2) - 4*a*c)

  • ขั้นตอนที่ 2 − if(D> 0) พิมพ์ 2 โซลูชั่น

  • ขั้นตอนที่ 3 − if(D =0) พิมพ์ 1 โซลูชัน

  • ขั้นตอนที่ 4 − if(D <0), พิมพ์ 0 โซลูชัน

ตัวอย่าง

#include <iostream>
using namespace std;
int checkSolution(int a, int b, int c) {
   if (((b * b) - (4 * a * c)) > 0)
      return 2;
   else if (((b * b) - (4 * a * c)) == 0)
      return 1;
   else
      return 0;
}
int main() {
   int a = 2, b = 2, c = 3;
   cout<<"The quadratic equation is "<<a<<"x^2 + "<<b<<"x +
   "<<c<<" has ";
   cout<<checkSolution(a, b, c)<<" solutions ";
   return 0;
}

ผลลัพธ์:

The quadratic equation is 2x^2 + 2x + 3 has 0 solutions