Volume of largest right circular cylinder within a Sphere

Given a sphere of radius R. The task is to find volume of the biggest right circular cylinder that can be inscribed within it.

Examples:

Input : R = 4
Output : 77.3495


Input : R = 5
Output : 151.073



Approach:
let r be the radius of the right circular cylinder, and h be it’s height.

Volume of the cylinder, V = π*r2*h

Also, r2 = R2 – h2
or, V = π*(R2 – h2)*h
or, dV/dh = π*(R2 – 3*h2)

Setting it to zero, we get h = R/√3
So, Vmax = 2πR3/3√3

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ Program to find the biggest right circular cylinder
// that can be fit within a sphere
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the biggest right circular cylinder
float cyl(float R)
{
  
    // radius cannot be negative
    if (R < 0)
        return -1;
  
    // volume of cylinder
    float V = (2 * 3.14 * pow(R, 3)) / (3 * sqrt(3));
    return V;
}
  
// Driver code
int main()
{
    float R = 4;
  
    cout << cyl(R) << endl;
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to find the biggest
// right circular cylinder that can
// be fit within a sphere
import java.io.*;
  
class GFG
{
  
// Function to find the biggest
// right circular cylinder
static float cyl(float R)
{
  
    // radius cannot be negative
    if (R < 0)
        return -1;
  
    // volume of cylinder
    float V = (float)((2 * 3.14 * Math.pow(R, 3)) / 
                      (3 * Math.sqrt(3)));
    return V;
}
  
// Driver code
public static void main (String[] args)
{
    float R = 4;
  
    System.out.print( cyl(R));
}
}
  
// This code is contributed by anuj_67.. 

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 Program to find the biggest 
# right circular cylinder that can be
# fit within a sphere
import math
  
# Function to find the biggest right 
# circular cylinder
def cyl(R):
      
    # radius cannot be negative
    if (R < 0):
        return -1
  
    # volume of cylinder
    V = ((2 * 3.14 * math.pow(R, 3)) / 
                (3 * math.sqrt(3)));
    return float(V)
  
# Driver code
R = 4
print(cyl(R))
  
# This code is contributed
# by PrinciRaj1992

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Program to find the biggest
// right circular cylinder that can
// be fit within a sphere
using System;
  
class GFG
{
  
// Function to find the biggest
// right circular cylinder
static float cyl(float R)
{
  
    // radius cannot be negative
    if (R < 0)
        return -1;
  
    // volume of cylinder
    float V = (float)((2 * 3.14 * Math.Pow(R, 3)) / 
                             (3 * Math.Sqrt(3)));
    return V;
}
  
// Driver code
public static void Main ()
{
    float R = 4;
  
    Console.WriteLine( cyl(R));
}
}
  
// This code is contributed by shs 

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP Program to find the biggest right circular cylinder
// that can be fit within a sphere
  
  
  
// Function to find the biggest right circular cylinder
function cyl($R)
{
  
    // radius cannot be negative
    if ($R < 0)
        return -1;
  
    // volume of cylinder
    $V = (2 * 3.14 * pow($R, 3)) / (3 * sqrt(3));
    return $V;
}
  
// Driver code
    $R = 4;
  
    echo cyl($R);
  
// This code is contributed by shs 
  
?>

chevron_right


Output:

77.3495


My Personal Notes arrow_drop_up

Recommended Posts: