给定一个半径球体 .任务是找到可以内接的最大正圆柱体的体积。
例子:
Input : R = 4
Output : 77.3495
Input : R = 5
Output : 151.073
方法:
令r为正圆柱的半径, h为其高度。
圆柱体的体积, V = π*r 2 *h
此外, r 2 = R 2 – h 2
或者, V = π*(R 2 – h 2 )*h
或者, dV/dh = π*(R 2 – 3*h 2 )
将其设置为零,我们得到h = R/√3
所以, Vmax = 2πR 3 /3√3
下面是上述方法的实现:
C++
// C++ Program to find the biggest right circular cylinder
// that can be fit within a sphere
#include
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;
}
Java
// 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..
Python 3
# 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
C#
// 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
PHP
Javascript
输出:
77.3495