Related Articles
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``` 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`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up