# Largest right circular cylinder that can be inscribed within a cone which is in turn inscribed within a cube

• Last Updated : 17 Mar, 2021

Given here is a cube of side length a, which inscribes a cone which in turn inscribes a right circular cylinder. The task is to find the largest possible volume of this cylinder.
Examples:

```Input: a = 5
Output: 232.593

Input: a = 8
Output: 952.699```

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 experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students. Approach
From the figure, it is very clear, height of cone, H = a and radius of the cone, R = a√2, please refer Largest cone that can be inscribed within a cube
and, radius of the cylinder, r = 2R/3 and height of the cylinder, h = 2H/3, please refer Largest right circular cylinder that can be inscribed within a cone
So, radius of cylinder with respect to cube, r = 2a√2/3 and height of cylinder with respect to cube, h = 2a/3
So, volume of the cylinder, V = 16πa^3/27.
Below is the implementation of the above approach:

## C++

 `// C++ Program to find the biggest right circular``// cylinder that can be inscribed within a right``// circular cone which in turn is inscribed``// within a cube``#include ``using` `namespace` `std;` `// Function to find the biggest``// right circular cylinder``float` `cyl(``float` `a)``{` `    ``// side cannot be negative``    ``if` `(a < 0)``        ``return` `-1;` `    ``// radius of right circular cylinder``    ``float` `r = (2 * a * ``sqrt``(2)) / 3;` `    ``// height of right circular cylinder``    ``float` `h = (2 * a) / 3;` `    ``// volume of right circular cylinder``    ``float` `V = 3.14 * ``pow``(r, 2) * h;` `    ``return` `V;``}` `// Driver code``int` `main()``{``    ``float` `a = 5;``    ``cout << cyl(a) << endl;` `    ``return` `0;``}`

## Java

 `// Java Program to find the biggest right circular``// cylinder that can be inscribed within a right``// circular cone which in turn is inscribed``// within a cube``import` `java.lang.Math;` `class` `cfg``{` `// Function to find the biggest``// right circular cylinder``static` `float` `cyl(``float` `a)``{` `    ``// side cannot be negative``    ``if` `(a < ``0``)``        ``return` `-``1``;` `    ``// radius of right circular cylinder``    ``float` `r = (``2` `* a *(``float``)(Math.sqrt (``2``)) / ``3``);` `    ``// height of right circular cylinder``    ``float` `h = (``2` `* a) / ``3``;` `    ``// volume of right circular cylinder``    ``float` `V =(``3``.14f *(``float``)(Math.pow(r, ``2``) * h));` `    ``return` `V;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``float` `a = ``5``;``    ``System.out.println(cyl(a));``}``}` `// This code is contributed by Mukul Singh.`

## Python3

 `# Python3 Program to find the biggest``# right circular cylinder that can be``# inscribed within a right circular``# cone which in turn is inscribed``# within a cube``import` `math as mt` `# Function to find the biggest``# right circular cylinder``def` `cyl(a):` `    ``# side cannot be negative``    ``if` `(a < ``0``):``        ``return` `-``1` `    ``# radius of right circular cylinder``    ``r ``=` `(``2` `*` `a ``*` `mt.sqrt(``2``)) ``/` `3` `    ``# height of right circular cylinder``    ``h ``=` `(``2` `*` `a) ``/` `3` `    ``# volume of right circular cylinder``    ``V ``=` `3.14` `*` `pow``(r, ``2``) ``*` `h` `    ``return` `V` `# Driver code``a ``=` `5``print``(cyl(a))` `# This code is contributed by``# Mohit kumar 29`

## C#

 `// C# Program to find the biggest``// right circular cylinder that can``// be inscribed within a right circular``// cone which in turn is inscribed``// within a cube``using` `System;` `class` `GFG``{` `    ``// Function to find the biggest``    ``// right circular cylinder``    ``static` `float` `cyl(``float` `a)``    ``{` `        ``// side cannot be negative``        ``if` `(a < 0)``            ``return` `-1;` `        ``// radius of right circular cylinder``        ``float` `r = (2 * a * (``float``)(Math.Sqrt (2)) / 3);` `        ``// height of right circular cylinder``        ``float` `h = (2 * a) / 3;` `        ``// volume of right circular cylinder``        ``float` `V =(3.14f * (``float``)(Math.Pow(r, 2) * h));``        ``return` `V;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``float` `a = 5;``        ``Console.Write(cyl(a));``    ``}``}` `// This code is contributed by Rajput-Ji`

## PHP

 ``

## Javascript

 ``
Output:
`232.593`

My Personal Notes arrow_drop_up