📌  相关文章
📜  可以内接在圆锥体中的最大的右圆柱体,然后再内接在立方体中

📅  最后修改于: 2021-04-22 01:41:50             🧑  作者: Mango

这里给出是边长为a的立方体,其内接的锥体这反过来题直圆柱体。任务是找到该气缸的最大可能容积。
例子:

Input: a = 5
Output: 232.593

Input: a = 8
Output: 952.699

方法
从图中可以很清楚地看出,圆锥体的高度H = a ,圆锥体的半径R =a√2 ,请参考可刻在立方体中的最大圆锥体。
圆柱体的半径r = 2R / 3 ,圆柱体的高度h = 2H / 3 ,请参阅可刻在圆锥内的最大的右圆形圆柱体。
因此,圆柱体相对于立方体的半径r =2a√2/ 3 ,圆柱体相对于立方体的高度h = 2a / 3
因此,圆柱体的体积V =16πa^ 3/27
下面是上述方法的实现:

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


输出:
232.593