Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm 2 số có tổng và tích đều bằng N C++


Tìm a, b thỏa mãn: a + b = N và a × b = N.

Giải pháp toán học

Thay a = N - b vào a×b = N:

(N-b)×b = N  →  b² - Nb + N = 0

Phương trình bậc 2: b = (N ± √(N² - 4N)) / 2

Có nghiệm thực khi N² - 4N ≥ 0 → N ≥ 4 (với N>0).

Chương trình C++

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main() {
    double N;
    cout << "Nhap N: "; cin >> N;
    
    double delta = N*N - 4*N;
    if (delta < 0) {
        cout << "Khong co so thuc thoa man\n";
        return 0;
    }
    
    double sqrtD = sqrt(delta);
    double a = (N + sqrtD) / 2;
    double b = (N - sqrtD) / 2;
    
    cout << fixed << setprecision(5);
    cout << "a = " << a << ", b = " << b << "\n";
    cout << "Kiem tra: a+b = " << a+b << ", a*b = " << a*b << "\n";
    return 0;
}

Kết quả (N=12)

Nhap N: 12
a = 10.89898, b = 1.10102
Kiem tra: a+b = 12.00000, a*b = 12.00000