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++ 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 <bits/stdc++.h> 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 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 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# 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 // PHP 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 // Function to find the biggest // right circular cylinder function cyl( $a )
{ // side cannot be negative
if ( $a < 0)
return -1;
// radius of right circular cylinder
$r = (2 * $a * 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;
echo cyl( $a );
// This code is contributed by Mahadev99 ?> |
<script> // javascript 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 // Function to find the biggest // right circular cylinder function cyl(a)
{ // side cannot be negative
if (a < 0)
return -1;
// radius of right circular cylinder
var r = (2 * a *(Math.sqrt (2)) / 3);
// height of right circular cylinder
var h = (2 * a) / 3;
// volume of right circular cylinder
var V =(3.14 *(Math.pow(r, 2) * h));
return V;
} // Driver code var a = 5;
document.write(cyl(a).toFixed(5)); // This code contributed by Princi Singh </script> |
232.593
Time Complexity: O(1)
Auxiliary Space: O(1)