fork download
  1. #include <cmath>
  2. #include <iostream>
  3.  
  4. void solve(int sum, int mul)
  5. {
  6. std::cout << "solution for x + y = " << sum << std::endl
  7. << " x * y = " << mul << std::endl;
  8. const int delta = sum * sum - 4 * mul;
  9. if (delta < 0) {
  10. std::cout << "No solution" << std::endl;
  11. return;
  12. }
  13. const float sqrtdelta = sqrtf(delta);
  14. const float x1 = (sum + sqrtdelta) / 2.f;
  15. const float x2 = (sum - sqrtdelta) / 2.f;
  16.  
  17. std::cout << "x = " << x1 << ", y = " << sum - x1 << std::endl;
  18. if (delta != 0) {
  19. std::cout << "x = " << x2 << ", y = " << sum - x2 << std::endl;
  20. }
  21. }
  22.  
  23. int main(int argc, char *argv[])
  24. {
  25. solve(5, 6); // 2, 3
  26. solve(-5, 6); // -2, -3
  27. solve(5, -6); // -1, 6
  28. solve(-5, -6); // -6, 1
  29. solve(2, 4); // No solution
  30.  
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
solution for x + y = 5
             x * y = 6
x = 3, y = 2
x = 2, y = 3
solution for x + y = -5
             x * y = 6
x = -2, y = -3
x = -3, y = -2
solution for x + y = 5
             x * y = -6
x = 6, y = -1
x = -1, y = 6
solution for x + y = -5
             x * y = -6
x = 1, y = -6
x = -6, y = 1
solution for x + y = 2
             x * y = 4
No solution