Untitled
unknown
plain_text
3 years ago
2.6 kB
1
Indexable
#include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { cout << "Nhập 4 số thực A, B, C, D" << endl; double a, b, c, d; double denta, x, x1, x2, x3, k; cout << "Nhập A: "; cin >> a; cout << "\n"; cout << "Nhập B: "; cin >> b; cout << "\n"; cout << "Nhập C: "; cin >> c; cout << "\n"; cout << "Nhập D: "; cin >> d; cout << "\n"; denta = pow(b, 2) - 3 * a * c; if (denta == 0) { cout << " Phương trình có một nghiệm bội: " << endl; cout << fixed << setprecision(5) << "x = " << (-b + pow(pow(b, 3) - 27 * pow(a, 2) * d, 1.0 / 3)) / (3 * a); } k = (9 * a * b * c - 2 * pow(b, 3) - 27 * pow(a, 2) * d) / (2 * sqrt(pow(abs(denta), 3))); cout << k << endl; if (denta > 0) { if (abs(k) > 1) { cout << "Phương trình có nghiệm duy nhất :" << endl; cout << fixed << setprecision(5) << "x = " << (sqrt((denta)*abs(k)) / (3 * a * k)) * (pow(abs(k) + sqrt(pow(k, 2) - 1), 1.0 / 3) + pow(abs(k) - sqrt(pow(k, 2) - 1), 1.0 / 3)) - (b / (3 * a)); } if (abs(k) <= 1) { cout << "Phương trình có 3 nghiệm phân biệt :" << endl; cout << fixed << setprecision(5) << "x1 = " << (2 * sqrt(denta) * cos((acos(k) / 3) - (2 * M_PI) / 3) - b) / (3 * a) << endl; cout << fixed << setprecision(5) << "x2 = " << (2 * sqrt(denta) * cos(acos(k) / 3) - b) / (3 * a) << endl; cout << fixed << setprecision(5) << "x3 = " << (2 * sqrt(denta) * cos((acos(k) / 3) + (2 * M_PI) / 3) - b) / (3 * a) << endl; } } if (denta < 0) { cout << "Phương trình có nghiệm duy nhất :" << endl; if (k > 0) { if (k > sqrt(pow(k, 2) + 1)) { cout << fixed << setprecision(5) << "x duong= " << (sqrt(abs(denta)) / (3 * a)) * (pow(k + sqrt(pow(k, 2) + 1), 1.0 / 3) + pow(k - sqrt(pow(k, 2) + 1), 1.0 / 3)) - b / (3 * a); } else { cout << fixed << setprecision(5) << "x duong= " << (sqrt(abs(denta)) / (3 * a)) * (pow(k + sqrt(pow(k, 2) + 1), 1.0 / 3) - pow(abs(k - sqrt(pow(k, 2) + 1)), 1.0 / 3)) - b / (3 * a); } } else { cout << fixed << setprecision(5) << "x = " << (sqrt(abs(denta)) / (3 * a)) * (pow(k + sqrt(pow(k, 2) + 1), 1.0 / 3) - pow(abs(k - sqrt(pow(k, 2) + 1)), 1.0 / 3)) - b / (3 * a); } } }
Editor is loading...