Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาอีกสองด้านของสามเหลี่ยมมุมฉากใน C++


ในปัญหานี้ เราได้จำนวนเต็มที่แสดงถึงด้านหนึ่งของสามเหลี่ยมมุมฉาก เราต้องตรวจสอบว่าเป็นไปได้ไหมที่จะมีสามเหลี่ยมมุมฉากกับด้าน a หากเป็นไปได้ ให้หาอีกสองด้านที่เหลือของสามเหลี่ยมมุมฉาก

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

a = 5

ผลลัพธ์

Sides : 5, 12, 13

คำอธิบาย

ด้านของมุมฉากหาได้เป็น 5 2 + 12 2 =13 2

แนวทางการแก้ปัญหา

วิธีแก้ปัญหาอย่างง่ายคือการใช้ทฤษฎีบทปีทาโกรัส เรารู้ว่าด้านของสามเหลี่ยมมุมฉากเป็นไปตามทฤษฎีบทปีทาโกรัส ซึ่งก็คือ

a2 + b2 = c2

โดยที่ a และ b เป็นด้านของสามเหลี่ยม และ c คือด้านตรงข้ามมุมฉากของสามเหลี่ยม

เมื่อใช้สิ่งนี้ เราจะคำนวณค่าของ b และ c โดยใช้ a

กรณีที่ 1

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

กรณีที่ 2

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

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#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;
}

ผลลัพธ์

Sides : a = 5, b = 12, c = 13