Giới thiệu
Cho một số nguyên a đại diện cho một cạnh của tam giác vuông. Cần kiểm tra xem có thể xây dựng tam giác vuông với cạnh a không. Nếu có, tìm hai cạnh còn lại.
Ví dụ minh họa
Đầu vào
a = 5
Đầu ra
Sides : 5, 12, 13
Giải thích
Các cạnh thỏa mãn định lý Pythagoras: 5² + 12² = 13²
Phương pháp giải
Sử dụng định lý Pythagoras: a² + b² = c², trong đó a, b là hai cạnh góc vuông, c là cạnh huyền.
Công thức tìm b và c từ a:
- Trường hợp 1: a chẵn
c = (a²/4) + 1 b = (a²/4) - 1
- Trường hợp 2: a lẻ
c = (a² + 1) / 2 b = (a² - 1) / 2
Lưu ý: Không tồn tại tam giác vuông với cạnh a = 1 hoặc a = 2.
Chương trình minh họa
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
#define PI 3.1415926535
void printOtherSides(int n) {
int b, c;
if (n & 1) { // a lẻ
if (n == 1)
cout << -1 << endl;
else {
b = (n*n - 1) / 2;
c = (n*n + 1) / 2;
}
} else { // a chẵn
if (n == 2)
cout << -1 << endl;
else {
b = n*n/4 - 1;
c = n*n/4 + 1;
}
}
cout << "Sides : a = " << n << ", b = " << b << ", c = " << c << endl;
}
int main() {
int a = 5;
printOtherSides(a);
return 0;
}
Đầu ra
Sides : a = 5, b = 12, c = 13