Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm hai cạnh khác của tam giác vuông trong C ++

Trong bài toán này, chúng ta được cung cấp một số nguyên biểu thị một cạnh của hình tam giác vuông. Ta cần kiểm tra xem có thể tồn tại một tam giác vuông có cạnh a hay không. Nếu có thể, hãy tìm hai cạnh còn lại của một tam giác vuông.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

a = 5

Đầu ra

Sides : 5, 12, 13

Giải thích

Các cạnh của góc vuông được tìm thấy là 5 2 + 12 2 =13 2

Phương pháp tiếp cận giải pháp

Một giải pháp đơn giản cho vấn đề là sử dụng định lý pythagoras. Chúng ta biết rằng các cạnh của một tam giác vuông tuân theo định lý pythagoras, là

a2 + b2 = c2

Trong đó a và b là các cạnh của tam giác và c là cạnh huyền của tam giác.

Sử dụng điều này, chúng tôi sẽ tính toán các giá trị của b và c bằng cách sử dụng a.

Trường hợp 1

If a is even,
c = (a2 + 4) + 1
b = (a2 + 4) - 1

Trường hợp 2

If a is odd,
c = (a2 + 1)/ 2
c = (a2 - 1)/ 2

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

#include <bits/stdc++.h>
#include <cmath>
using namespace std;
#define PI 3.1415926535
void printOtherSides(int n) {
   int b,c;
   if (n & 1) {
      if (n == 1)
         cout << -1 << endl;
      else{
         b = (n*n-1)/2;
         c = (n*n+1)/2;
      }
   } else {
      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