#include <iostream>
#include <cmath>
using std::cout;
int main() {
double perimeter = 120, legA = 20;
// From perimeter: a + b + c = P
// From Pythagoras: c = sqrt(a^2 + b^2)
// Substitute c into perimeter equation: a + b + sqrt(a^2 + b^2) = P
// Solve for legB
double legB = (pow(perimeter - legA, 2) - pow(legA, 2)) / (2 * (perimeter - legA));
if (legB <= 0) {
std::cerr << "No valid right triangle exists with these values.\n";
return 1;
}
double hypotenuse = sqrt(legA * legA + legB * legB);
cout << std::fixed;
cout.precision(3);
cout << "Leg a: " << legA << "\n";
cout << "Leg b: " << legB << "\n";
cout << "Hypotenuse: " << hypotenuse << "\n";
}
/*
run:
Leg a: 20.000
Leg b: 48.000
Hypotenuse: 52.000
*/