Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm hai cạnh còn lại của tam giác vuông trong C++

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