โจทย์: กำหนด 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