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 octagonfloat octadiagonal(float a){ // side cannot be negative if (a < 0) return -1; // diagonal of the octagon return a * sqrt(4 + (2 * sqrt(2)));}// Driver codeint 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 octagonimport math# Function to find the diagonal# of the octagondef 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 codeif __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 octagonfunction 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> |
10.4525
Time complexity: O(1), since there is no loop or recursion.
Auxiliary Space: O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

