Skip to content
Related Articles

Related Articles

Length of the Diagonal of the Octagon
  • Last Updated : 17 Mar, 2021

Given here is a regular octagon of side length a, the task is to find the length of it’s diagonal.
Examples: 
 

Input: a = 4
Output: 10.4525

Input: a = 5
Output: 13.0656

 

 

Approach: From the diagram it is clear that,
 



AB^2 + BC^2 = AC^2 
here, in triangle AED, 
b^2 + b^2 = a^2 
or, b=a/√2(Please refer
So, AB = a + 2b = a + √2a 
and, BC = a 
So, diagonal AC = a√(4 + 2√2)

Below is the implementation of the above approach: 
 

C++




// C++ Program to find the diagonal
// of the octagon
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the diagonal
// of the octagon
float octadiagonal(float a)
{
 
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // diagonal of the octagon
    return a * sqrt(4 + (2 * sqrt(2)));
}
 
// Driver code
int main()
{
    float a = 4;
    cout << octadiagonal(a) << endl;
 
    return 0;
}

Java




// Java  Program to find the diagonal
// of the octagon
import java.util.*;
class solution
{
   
// Function to find the diagonal
// of the octagon
static double octadiagonal(double a)
{
   
    // side cannot be negative
    if (a < 0)
        return -1;
   
    // diagonal of the octagon
    return a * Math.sqrt(4 + (2 * Math.sqrt(2)));
}
   
// Driver code
public static void main(String args[])
{
    double a = 4;
    System.out.println( octadiagonal(a));
   
}
}
//contributed by Arnab Kundu

Python3




# Python3 Program to find the diagonal
# of the octagon
import math
# Function to find the diagonal
# of the octagon
def octadiagonal(a):
 
    # side cannot be negative
    if (a < 0):
        return -1;
 
    # diagonal of the octagon
    return a * math.sqrt(4 + (2 * math.sqrt(2)))
 
 
# Driver code
if __name__=='__main__':
    a = 4
    print (octadiagonal(a))
 
# This code is contributed by
# Shivi_Aggarwal

C#




// C# Program to find the diagonal
// of the octagon
using System;
 
class GFG
{
 
// Function to find the diagonal
// of the octagon
static double octadiagonal(double a)
{
 
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // diagonal of the octagon
    return a * Math.Sqrt(4 +
          (2 * Math.Sqrt(2)));
}
 
// Driver code
public static void Main()
{
    double a = 4;
    Console.WriteLine(octadiagonal(a));
}
}
 
// This code is contributed
// by inder_verma

PHP




<?php
// PHP program to find the diagonal
// of the octagon
 
// Function to find the diagonal
// of the octagon
function octadiagonal($a)
{
 
    // side cannot be negative
    if ($a < 0)
        return -1;
 
    // diagonal of the octagon
    return $a * sqrt(4 + (2 * sqrt(2)));
}
 
// Driver code
 
    $a = 4;
    echo octadiagonal($a) ;
 
// This code is contributed
// by inder_verma
 
?>

Javascript




<script>
// javascript  Program to find the diagonal
// of the octagon
 
// Function to find the diagonal
// of the octagon
function octadiagonal(a)
{
   
    // side cannot be negative
    if (a < 0)
        return -1;
   
    // diagonal of the octagon
    return a * Math.sqrt(4 + (2 * Math.sqrt(2)));
}
 
var a = 4;
document.write( octadiagonal(a).toFixed(5));
 
// This code is contributed by 29AjayKumar
</script>
Output: 
10.4525

 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :