
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Find Other Two Sides of a Right Angle Triangle in C++
In this problem, we are given an integer a denoting one side of a right angle triangle. We need to check whether it is possible to have a right angle triangle with side a. If it is possible, then find the other two sides of a right angle triangle.
Let’s take an example to understand the problem,
Input
a = 5
Output
Sides : 5, 12, 13
Explanation
The sides of right angle are found as 52 + 122 = 132
Solution Approach
A simple solution to the problem is using pythagoras theorem. We know that the sides of a right angled triangle follow pythagoras theorem, which is
a2 + b2 = c2
Where a and b are sides of the triangle and c is the hypotenuse of the triangle.
Using this, we will calculate values of b and c using a.
Case 1
If a is even, c = (a2 + 4) + 1 b = (a2 + 4) - 1
Case 2
If a is odd, c = (a2 + 1)/ 2 c = (a2 - 1)/ 2
Program to illustrate the working of our solution,
Example
#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; }
Output
Sides : a = 5, b = 12, c = 13
Advertisements