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

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

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

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

ตัวอย่างเพื่อความเข้าใจ

ตัวอย่าง 1:

อินพุต – 3x² + 7x + 4

เอาต์พุต – 2

คำอธิบาย – คำตอบสองคำตอบคือ 1 และ 4/3

ตัวอย่าง 2:

อินพุต – x² - 4x + 4

เอาต์พุต – 1

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

อินพุต – 2x² + 2x + 2

เอาต์พุต – 0

คำอธิบาย: ไม่มีคำตอบสำหรับสมการนี้

วิธีแก้ปัญหา:

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

รากของสมการได้จากสูตร

x = (-b ± √(b² - 4ac)) / 2a
D = (b²) - (4*a*c)

ดังนั้น ค่าของ discriminant จะบอกจำนวนรากของสมการกำลังสอง

  • ถ้า D = 0 จำนวนคำตอบคือ 1
  • ถ้า D > 0 จำนวนคำตอบคือ 2
  • ถ้า D < 0 จำนวนคำตอบคือ 0 เนื่องจากรากของจำนวนลบเป็นจำนวนจินตภาพ

อัลกอริทึม:

  • ขั้นตอนที่ 1 – หาค่า D, D = ((b²) - 4*a*c)
  • ขั้นตอนที่ 2 – ถ้า D > 0 แสดง 2 คำตอบ
  • ขั้นตอนที่ 3 – ถ้า D = 0 แสดง 1 คำตอบ
  • ขั้นตอนที่ 4 – ถ้า 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