Given a square of side length ‘a’, the task is to find the side length of the biggest octagon that can be inscribed within it.
Examples:
Input: a = 4 Output: 1.65685 Input: a = 5 Output: 2.07107
Approach:
=> From the figure, it can be seen that, side length of the Octagon = b => Also since the polygons are regular, therefore 2*x + b = a => From the right angled triangle, x^2 + x^2 = b^2 => Hence, x = b/?2, => So, ?2b + b = a => Therefore, b = a/(?2 +1)
Below is the implementation of the above approach:
C++
// C++ Program to find the side of the octagon // which can be inscribed within the square #include <bits/stdc++.h> using namespace std;
// Function to find the side // of the octagon float octaside( float a)
{ // side cannot be negative
if (a < 0)
return -1;
// side of the octagon
float s = a / ( sqrt (2) + 1);
return s;
} // Driver code int main()
{ // Get he square side
float a = 4;
// Find the side length of the square
cout << octaside(a) << endl;
return 0;
} |
Java
// Java Program to find the side of the octagon // which can be inscribed within the square import java.io.*;
class GFG {
// Function to find the side // of the octagon static double octaside( double a)
{ // side cannot be negative
if (a < 0 )
return - 1 ;
// side of the octagon
double s = a / (Math.sqrt( 2 ) + 1 );
return s;
} // Driver code public static void main (String[] args) {
// Get he square side
double a = 4 ;
// Find the side length of the square
System.out.println( octaside(a));
}
} //This Code is contributed by ajit |
Python3
# Python 3 Program to find the side # of the octagon which can be # inscribed within the square from math import sqrt
# Function to find the side # of the octagon def octaside(a):
# side cannot be negative
if a < 0 :
return - 1
# side of the octagon
s = a / (sqrt( 2 ) + 1 )
return s
# Driver code if __name__ = = '__main__' :
# Get he square side
a = 4
# Find the side length of the square
print ( "{0:.6}" . format (octaside(a)))
# This code is contributed # by Surendra_Gangwar |
C#
// C# Program to find the side // of the octagon which can be // inscribed within the square using System;
class GFG
{ // Function to find the side // of the octagon static double octaside( double a)
{ // side cannot be negative
if (a < 0)
return -1;
// side of the octagon
double s = a / (Math.Sqrt(2) + 1);
return s;
} // Driver code static public void Main ()
{ // Get he square side
double a = 4;
// Find the side length
// of the square
Console.WriteLine( octaside(a));
} } // This code is contributed // by akt_mit |
PHP
<?php // PHP Program to find the side of the octagon // which can be inscribed within the square // Function to find the side // of the octagon function octaside( $a )
{ // side cannot be negative
if ( $a < 0)
return -1;
// side of the octagon
$s = $a / (sqrt(2) + 1);
return $s ;
} // Driver code // Get he square side
$a = 4;
// Find the side length of the square
echo octaside( $a );
// This code is contributed by ajit ?> |
Javascript
<script> // javascript Program to find the side of the octagon // which can be inscribed within the square // Function to find the side // of the octagon function octaside(a)
{ // side cannot be negative
if (a < 0)
return -1;
// side of the octagon
var s = a / (Math.sqrt(2) + 1);
return s;
} // Driver code // Get he square side var a = 4;
// Find the side length of the square document.write( octaside(a).toFixed(5)); // This code is contributed by shikhasingrajput </script> |
Output:
1.65685
Time Complexity: O(1) since no loop is used the algorithm takes up constant time to perform the operations
Space Complexity: O(1) since no extra array is used so the space taken by the algorithm is constant
Recommended Articles