Skip to content
Related Articles
Largest cube that can be inscribed within a right circular cone
• Last Updated : 17 Mar, 2021

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 = 6
Output : 3.14613

Input : h = 8, r = 12
Output : 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 ``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;``}`

## 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`

## 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`

## 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`

## PHP

 ``

## Javascript

 ``
Output:
`3.14613`

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live

My Personal Notes arrow_drop_up