Trong hướng dẫn này, ta sẽ viết chương trình tìm hai số x, y sao cho x + y = n và x * y = n. Đôi khi không thể tìm thấy cặp số đó. Ta sẽ in None nếu không tồn tại. Hãy bắt đầu.
Hai số cho trước là tổng và tích của một phương trình bậc hai. Số không tồn tại nếu n2 - 4*n < 0. Ngược lại, hai số sẽ là $$\lgroup n + \sqrt{n^{2} - 4*n}\rgroup/2$$ và $$\lgroup n - \sqrt{n^{2} - 4*n}\rgroup/2$$.
Ví dụ
Xem mã dưới đây:
#include <bits/stdc++.h> using namespace std; void findTwoNumbersWithSameSumAndProduc(double n) { double imaginaryValue = n * n - 4.0 * n; // kiểm tra nghiệm ảo if (imaginaryValue < 0) { cout << "None"; return; } // in x và y cout << (n + sqrt(imaginaryValue)) / 2.0 << endl; cout << (n - sqrt(imaginaryValue)) / 2.0 << endl; } int main() { double n = 50; findTwoNumbersWithSameSumAndProduc(n); return 0; }
Đầu ra
Nếu thực thi chương trình trên, bạn sẽ nhận được kết quả sau:
48.9792 1.02084
Kết luận
Nếu bạn có thắc mắc, hãy đề cập trong phần bình luận.