📜  可以刻在立方体中的最大圆锥体

📅  最后修改于: 2021-04-22 06:32:00             🧑  作者: Mango

这里给出的是边长为a的立方体。我们必须找到可以内接的最大右圆锥的高度和半径。
例子

Input : a = 6 
Output : r = 4.24264, h = 6

Input : a = 10
Output : r = 7.07107, h = 10

方法
令圆锥的高度= h
并且,圆锥的半径= r
从图中可以清楚地了解到,

  • r = a /√2
  • h = a

下面是上述方法的实现:

C++
// C++ Program to find the biggest cone
// inscribed within a cube
 
#include 
using namespace std;
 
// Function to find the radius of the cone
float coneRadius(float a)
{
 
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // radius of the cone
    float r = a / sqrt(2);
    return r;
}
 
// Function to find the height of the cone
float coneHeight(float a)
{
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // height of the cone
    float h = a;
    return h;
}
 
// Driver code
int main()
{
    float a = 6;
 
    cout << "r = " << coneRadius(a) << ", "
         << "h = " << coneHeight(a) << endl;
 
    return 0;
}


Java
// Java Program to find the biggest
// cone inscribed within a cube
import java.util.*;
import java.lang.*;
 
class GFG
{
// Function to find the radius
// of the cone
static float coneRadius(float a)
{
 
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // radius of the cone
    float r = (float)(a / Math.sqrt(2));
    return r;
}
 
// Function to find the height
// of the cone
static float coneHeight(float a)
{
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // height of the cone
    float h = a;
    return h;
}
 
// Driver code
public static void main(String args[])
{
    float a = 6;
 
    System.out.println("r = " + coneRadius(a) +
                    ", " + "h = " + coneHeight(a));
}
}
 
// This code is contributed
// by Akanksha Rai


Python 3
# Python 3 Program to find the biggest
# cone inscribed within a cube
import math
 
# Function to find the radius
# of the cone
def coneRadius(a):
 
    # side cannot be negative
    if (a < 0):
        return -1
 
    # radius of the cone
    r = a / math.sqrt(2)
    return r
 
# Function to find the height of the cone
def coneHeight(a):
 
    # side cannot be negative
    if (a < 0):
        return -1
 
    # height of the cone
    h = a
    return h
 
# Driver code
if __name__ == "__main__":
     
    a = 6
 
    print("r = ", coneRadius(a) ,
          "h = ", coneHeight(a))
 
# This code is contributed by ChitraNayal


C#
// C# Program to find the biggest
// cone inscribed within a cube
using System;
 
class GFG
{
// Function to find the radius
// of the cone
static float coneRadius(float a)
{
 
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // radius of the cone
    float r = (float)(a / Math.Sqrt(2));
    return r;
}
 
// Function to find the height
// of the cone
static float coneHeight(float a)
{
    // side cannot be negative
    if (a < 0)
        return -1;
 
    // height of the cone
    float h = a;
    return h;
}
 
// Driver code
public static void Main()
{
    float a = 6;
 
    Console.WriteLine("r = " + coneRadius(a) +
                       ", " + "h = " + coneHeight(a));
}
}
 
// This code is contributed
// by Akanksha Rai


PHP


Javascript


输出:
r = 4.24264, h = 6