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

หา 2 จำนวนที่ Sum และ Product เท่ากับ N ใน C++


โจทย์: กำหนด N หา a, b ที่ a+b = N และ a×b = N

คณิตศาสตร์

a + b = N, a × b = N → a, b เป็นรากของสมการ x² - Nx + N = 0

Discriminant: D = N² - 4N

  • ถ้า D < 0 → ไม่มีคำตอบจริง
  • ถ้า D ≥ 0 → a,b = (N ± √D) / 2

ตัวอย่างโค้ด C++

#include <bits/stdc++.h>
using namespace std;

void calculateTwoValues(double N) {
    double val = N * N - 4.0 * N;
    if (val < 0) { cout << "NO"; return; }
    double a = (N + sqrt(val)) / 2.0;
    double b = (N - sqrt(val)) / 2.0;
    cout << "Value of A: " << a << endl;
    cout << "Value of B: " << b << endl;
}

int main() {
    double N = 57.0;
    calculateTwoValues(N);
}

อินพุต

57.0

เอาต์พุท

Value of A: 55.9818
Value of B: 1.01819

สังเกต

  • มีคำตอบจริงก็ต่อเมื่อ N ≥ 4 หรือ N ≤ 0
  • ถ้า N เป็น integer และต้องการ integer solution → ต้องมี D เป็น perfect square