#include<iostream>
#include<cmath>
#include<complex>
using namespace std;
int main( ) {
//This program will take a quadratic in the form Ax^2+Bx+c and solve for the roots of the quadratic using the quadratic formula
//Quad Form: -b+-sqrt((b^2-4ac)/(2a))
//Working on adding imaginary(i) numbers
//(2,1) in complex c++ is the same as 2+i in math
// Lots of help in complex c++ in this thread {http://w...content-available-to-author-only...b.com/software-development/cpp/threads/311699}
double a, b, c;
double Sol1, Sol2;
complex< double > cSol1, cSol2, discr;
cout << "Enter A,B, and C. From the general form of a quadratic. Ax^2+Bx+c" ;
cout << "\n Enter A " ;
cin >> a;
cout << "\n Enter B " ;
cin >> b;
cout << "\n Enter C " ;
cin >> c;
if ( a== 0 ) {
cout << "Not a Quadratic\n " ;
}
else if ( ( b* b- 4 * a* c) < 0 ) {
cout << "\n Imaginary Roots" ;
discr = sqrt ( complex< double > ( b* b- 4 * a* c) ) ;
complex< double > cSol1= ( ( - 1 * b) - discr) / ( 2 * a) ;
complex< double > cSol2= ( ( - 1 * b) + discr) / ( 2 * a) ;
cout << "\n The solutions are x = " << cSol1;
cout << "\n And x = " << cSol2 << endl;
}
else {
Sol1= sqrt ( pow ( b , 2 ) - ( 4 * a* c) ) - ( b*- 1 ) ;
Sol1= ( Sol1) / ( 2 * a) ;
Sol2= ( ( - 1 ) * sqrt ( pow ( b, 2 ) - ( 4 * a* c) ) ) - ( b*- 1 ) ;
Sol2= ( Sol2) / ( 2 * a) ;
cout << "\n The Solutions are x = " << Sol1;
cout << " And x = " << Sol2 << endl;
}
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxjb21wbGV4Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkvL1RoaXMgcHJvZ3JhbSB3aWxsIHRha2UgYSBxdWFkcmF0aWMgaW4gdGhlIGZvcm0gQXheMitCeCtjIGFuZCBzb2x2ZSBmb3IgdGhlIHJvb3RzIG9mIHRoZSBxdWFkcmF0aWMgdXNpbmcgdGhlIHF1YWRyYXRpYyBmb3JtdWxhCgkvL1F1YWQgRm9ybTogLWIrLXNxcnQoKGJeMi00YWMpLygyYSkpCgkvL1dvcmtpbmcgb24gYWRkaW5nIGltYWdpbmFyeShpKSBudW1iZXJzCgkvLygyLDEpIGluIGNvbXBsZXggYysrIGlzIHRoZSBzYW1lIGFzIDIraSBpbiBtYXRoCgkvLyBMb3RzIG9mIGhlbHAgaW4gY29tcGxleCBjKysgaW4gdGhpcyB0aHJlYWQge2h0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5iLmNvbS9zb2Z0d2FyZS1kZXZlbG9wbWVudC9jcHAvdGhyZWFkcy8zMTE2OTl9CgoJZG91YmxlIGEsIGIsIGM7Cglkb3VibGUgU29sMSwgU29sMjsKCWNvbXBsZXg8ZG91YmxlPiBjU29sMSwgY1NvbDIsIGRpc2NyOwoJCgoJY291dCA8PCAiRW50ZXIgQSxCLCBhbmQgQy4gRnJvbSB0aGUgZ2VuZXJhbCBmb3JtIG9mIGEgcXVhZHJhdGljLiBBeF4yK0J4K2MiOwoJY291dCA8PCAiXG5FbnRlciBBICAiOwoJY2luID4+IGE7Cgljb3V0IDw8ICJcbkVudGVyIEIgICI7CgljaW4gPj4gYjsKCWNvdXQgPDwgIlxuRW50ZXIgQyAgIjsKCWNpbiA+PiBjOwoJCglpZiAoYT09MCl7CgkgICAgY291dDw8ICJOb3QgYSBRdWFkcmF0aWNcbiI7CgkgICAgfQoJICAgIAoKCWVsc2UgaWYgKChiKmItNCphKmMpIDwgMCkgewoJCWNvdXQgPDwgIlxuSW1hZ2luYXJ5IFJvb3RzIjsKCQlkaXNjciA9c3FydChjb21wbGV4PGRvdWJsZT4oYipiLTQqYSpjKSk7CgkJY29tcGxleDxkb3VibGU+IGNTb2wxPSAoKC0xKmIpLWRpc2NyKS8oMiphKTsKCSAJY29tcGxleDxkb3VibGU+IGNTb2wyPSAoKC0xKmIpK2Rpc2NyKS8oMiphKTsKCgkJY291dCA8PCAiXG5UaGUgc29sdXRpb25zIGFyZSB4ID0gIiA8PCBjU29sMTsKCQljb3V0IDw8ICJcbkFuZCB4ID0gIiA8PCBjU29sMiA8PCBlbmRsOwoJCQoJCX0KCgllbHNlIHsKCglTb2wxPXNxcnQocG93KGIgLCAyKS0oNCphKmMpKS0oYiotMSk7CglTb2wxPSAoU29sMSkvKDIqYSk7CglTb2wyPSgoLTEpKnNxcnQocG93KGIsIDIpLSg0KmEqYykpKS0oYiotMSk7CglTb2wyPShTb2wyKS8oMiphKTsKCgljb3V0IDw8IlxuIFRoZSBTb2x1dGlvbnMgYXJlIHggPSAiIDw8IFNvbDE7Cgljb3V0IDw8IiAgQW5kIHggPSAiIDw8IFNvbDIgPDwgZW5kbDsKfQoKCXJldHVybiAwOwoJfQ==