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> |
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!