# Program to find the side of the Octagon inscribed within the square

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