# Largest cube that can be inscribed within a right circular cone

Given a right circular cone of radius **r** and perpendicular height **h**. We have to find the side length of the biggest cube that can be inscribed within it.

**Examples**:

Input: h = 5, r = 6Output: 3.14613Input: h = 8, r = 12Output: 5.43698

**Approach**:

Let, side of the cube = **a**.

From the diagram, we can clearly understand using the properties of triangles: **BC/AB = DE/AD.**

Therefore,

r/h = (a/√2)/(h-a)or,a = h*r√2/(h+√2*r)

Below is the implementation of the above approach:

## C++

`// C++ Program to find the biggest cube ` `// inscribed within a right circular cone ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find the side of the cube ` `float` `cubeSide(` `float` `h, ` `float` `r) ` `{ ` ` ` `// height and radius cannot be negative ` ` ` `if` `(h < 0 && r < 0) ` ` ` `return` `-1; ` ` ` ` ` `// side of the cube ` ` ` `float` `a = (h * r * ` `sqrt` `(2)) / (h + ` `sqrt` `(2) * r); ` ` ` ` ` `return` `a; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `float` `h = 5, r = 6; ` ` ` ` ` `cout << cubeSide(h, r) << endl; ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java Program to find the the biggest cube ` `// which can be inscribed within a right circular cone ` ` ` `import` `java.io.*; ` ` ` `class` `GFG { ` ` ` ` ` `// Function to find the side of the cube ` ` ` `static` `float` `cube(` `float` `h, ` `float` `r) ` `{ ` ` ` ` ` `// hegiht and radius cannot be negative ` ` ` `if` `(h < ` `0` `&& r < ` `0` `) ` ` ` `return` `-` `1` `; ` ` ` ` ` `// side of the cube ` ` ` `float` `a = (h * r * (` `float` `)Math.sqrt(` `2` `)) / (h + (` `float` `)Math.sqrt(` `2` `) * r); ` ` ` ` ` `return` `a; ` `} ` ` ` `// Driver code ` ` ` ` ` `public` `static` `void` `main (String[] args) { ` ` ` `float` `h = ` `5` `, r = ` `6` `; ` ` ` `System.out.println( cube(h, r)); ` ` ` `} ` `} ` ` ` `// this article is contributed by Ishwar Gupta ` |

*chevron_right*

*filter_none*

## Python 3

`# Python3 Program to find the biggest cube ` `# inscribed within a right circular cone ` `import` `math ` ` ` `# Function to find the side of the cube ` `def` `cubeSide(h, r): ` ` ` ` ` `# height and radius cannot ` ` ` `# be negative ` ` ` `if` `(h < ` `0` `and` `r < ` `0` `): ` ` ` `return` `-` `1` ` ` ` ` `# side of the cube ` ` ` `a ` `=` `((h ` `*` `r ` `*` `math.sqrt(` `2` `)) ` `/` ` ` `(h ` `+` `math.sqrt(` `2` `) ` `*` `r)) ` ` ` ` ` `return` `a ` ` ` `# Driver code ` `h ` `=` `5` `; r ` `=` `6` `; ` ` ` `print` `(cubeSide(h, r), ` `"\n"` `) ` ` ` `# This code is contributed ` `# by Akanksha Rai ` |

*chevron_right*

*filter_none*

## C#

`// C# Program to find the the ` `// biggest cube which can be ` `// inscribed within a right ` `// circular cone ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to find the side ` `// of the cube ` `static` `float` `cube(` `float` `h, ` `float` `r) ` `{ ` ` ` `// hegiht and radius cannot be negative ` `if` `(h < 0 && r < 0) ` ` ` `return` `-1; ` ` ` `// side of the cube ` `float` `a = (h * r * (` `float` `)Math.Sqrt(2)) / ` ` ` `(h + (` `float` `)Math.Sqrt(2) * r); ` ` ` ` ` `return` `a; ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main () ` `{ ` ` ` `float` `h = 5, r = 6; ` ` ` `Console.Write( cube(h, r)); ` `} ` `} ` ` ` `// This code is contributed ` `// by 29AjayKumar ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP Program to find the biggest cube ` `// inscribed within a right circular cone ` ` ` `// Function to find the side of the cube ` `function` `cubeSide(` `$h` `, ` `$r` `) ` `{ ` ` ` `// height and radius cannot ` ` ` `// be negative ` ` ` `if` `(` `$h` `< 0 && ` `$r` `< 0) ` ` ` `return` `-1; ` ` ` ` ` `// side of the cube ` ` ` `$a` `= (` `$h` `* ` `$r` `* sqrt(2)) / ` ` ` `(` `$h` `+ sqrt(2) * ` `$r` `); ` ` ` ` ` `return` `$a` `; ` `} ` ` ` `// Driver code ` `$h` `= 5; ` `$r` `= 6; ` ` ` `echo` `cubeSide(` `$h` `, ` `$r` `); ` ` ` `// This code is contributed ` `// by Shivi_Aggarwal ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

3.14613

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: **DSA Self Paced**. Become industry ready at a student-friendly price.

## Recommended Posts:

- Largest right circular cylinder that can be inscribed within a cone which is in turn inscribed within a cube
- Largest sphere that can be inscribed within a cube which is in turn inscribed within a right circular cone
- Largest right circular cone that can be inscribed within a sphere which is inscribed within a cube
- Largest cone that can be inscribed within a cube
- Largest right circular cone that can be inscribed within a sphere
- Largest right circular cylinder that can be inscribed within a cone
- Largest cube that can be inscribed within a right circular cylinder
- Largest sphere that can be inscribed in a right circular cylinder inscribed in a frustum
- Largest cube that can be inscribed within the sphere
- Largest sphere that can be inscribed inside a cube
- Largest right circular cylinder within a cube
- Largest square that can be inscribed within a hexagon which is inscribed within an equilateral triangle
- Largest ellipse that can be inscribed within a rectangle which in turn is inscribed within a semicircle
- Largest triangle that can be inscribed in a semicircle
- Largest square that can be inscribed in a semicircle
- Largest trapezoid that can be inscribed in a semicircle
- Largest triangle that can be inscribed in an ellipse
- Largest Square that can be inscribed within a hexagon
- Largest hexagon that can be inscribed within a square
- Largest rectangle that can be inscribed in a semicircle

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.