Find the type of triangle from the given sides

Given three integers A, B, and C which denotes the sides of a triangle, the task is to check that the triangle is a right-angled, acute-angled or obtuse-angled triangle.

Examples:

Input: A = 1, B = 4, C = 3
Output: Obtuse-angled Triangle
Explanation:
Triangle with the sides 1, 2 and 3 is an obtuse-angled triangle



Input: A = 2, B = 2, C = 2
Output: Acute-angled Triangle
Explanation:
Triangle with the sides 2, 2, and 2 is an acute-angled triangle

Approach: The idea is to use the facts from the cosine law to check the type of triangle using this formulae –
 c^2 &= a^2 + b^2 - 2*a*b*cos\gamma
It generalizes the Pythagorean Theorum, which states that for a right-angled triangle square of the hypotenuse is equal to the sum of squares of the base and height of the triangle, which is c^2 &= a^2 + b^2

Similarly, It can be observed that
For acute-angled triangle
c^2 \textless a^2 + b^2
For Obtuse-angled triangle
c^2 \textgreater a^2 + b^2

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation to find
// the type of triangle with
// the help of the sides
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the type of
// triangle with the help of sides
void checkTypeOfTriangle(int a, 
                int b, int c){
    int sqa = pow(a, 2);
    int sqb = pow(b, 2);
    int sqc = pow(c, 2);
      
    if (sqa == sqa + sqb || 
        sqb == sqa + sqc || 
        sqc == sqa + sqb){
        cout << "Right-angled Triangle";
    }
    else if(sqa > sqc + sqb ||
            sqb > sqa + sqc ||
            sqc > sqa + sqb){
        cout << "Obtuse-angled Triangle";
    }
    else{
        cout << "Acute-angled Triangle";
    }
}
  
// Driver Code
int main()
{
    int a, b, c;
    a = 2;
    b = 2; 
    c = 2;
      
    // Function Call
    checkTypeOfTriangle(a, b, c);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation to find
// the type of triangle with
// the help of the sides
import java.util.*;
  
class GFG
{
  
// Function to find the type of
// triangle with the help of sides
static void checkTypeOfTriangle(int a, 
                int b, int c){
    int sqa = (int)Math.pow(a, 2);
    int sqb = (int)Math.pow(b, 2);
    int sqc = (int)Math.pow(c, 2);
      
    if (sqa == sqa + sqb || 
        sqb == sqa + sqc || 
        sqc == sqa + sqb){
        System.out.print("Right-angled Triangle");
    }
    else if(sqa > sqc + sqb ||
            sqb > sqa + sqc ||
            sqc > sqa + sqb){
        System.out.print("Obtuse-angled Triangle");
    }
    else{
        System.out.print( "Acute-angled Triangle");
    }
}
  
// Driver Code 
public static void main (String []args)
{
    int a, b, c;
    a = 2;
    b = 2
    c = 2;
      
    // Function Call
    checkTypeOfTriangle(a, b, c);
}
}
  
// This code is contribute by chitranayal

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation to find
# the type of triangle with
# the help of the sides
  
# Function to find the type of
# triangle with the help of sides
def checkTypeOfTriangle(a,b,c):
    sqa = pow(a, 2)
    sqb = pow(b, 2)
    sqc = pow(c, 2)
  
    if (sqa == sqa + sqb or
        sqb == sqa + sqc or
        sqc == sqa + sqb):
        print("Right-angled Triangle")
  
    elif(sqa > sqc + sqb or
            sqb > sqa + sqc or
            sqc > sqa + sqb):
        print("Obtuse-angled Triangle")
  
    else:
        print("Acute-angled Triangle")
  
# Driver Code
if __name__ == '__main__':
    a = 2
    b = 2
    c = 2
  
    # Function Call
    checkTypeOfTriangle(a, b, c)
  
# This code is contributed by mohit kumar 29

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation to find
// the type of triangle with
// the help of the sides
using System;
  
class GFG
{
   
// Function to find the type of
// triangle with the help of sides
static void checkTypeOfTriangle(int a, 
                int b, int c){
    int sqa = (int)Math.Pow(a, 2);
    int sqb = (int)Math.Pow(b, 2);
    int sqc = (int)Math.Pow(c, 2);
       
    if (sqa == sqa + sqb || 
        sqb == sqa + sqc || 
        sqc == sqa + sqb){
        Console.Write("Right-angled Triangle");
    }
    else if(sqa > sqc + sqb ||
            sqb > sqa + sqc ||
            sqc > sqa + sqb){
        Console.Write("Obtuse-angled Triangle");
    }
    else{
        Console.Write( "Acute-angled Triangle");
    }
}
   
// Driver Code 
public static void Main(String []args)
{
    int a, b, c;
    a = 2;
    b = 2; 
    c = 2;
       
    // Function Call
    checkTypeOfTriangle(a, b, c);
}
}
  
// This code is contributed by 29AjayKumar

chevron_right


Output:

Acute-angled Triangle

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.