Aquí se da un tronco de altura h , radio superior r y radio base R , que inscribe un cilindro circular recto que a su vez inscribe una esfera . La tarea es encontrar el mayor volumen posible de esta esfera.
Ejemplos:
Input: r = 5, R = 8, h = 11 Output: 523.333 Input: r = 9, R = 14, h = 20 Output:3052.08
Enfoque : Deje que la altura del cilindro = H , el radio de la esfera = x
Sabemos que la altura y el radio del cilindro inscrito dentro del tronco es igual a la altura y el radio superior del tronco, respectivamente (consulte aquí) . Entonces la altura del cilindro = h , el radio del cilindro = r .
Además, el radio de la esfera inscrita dentro de un cilindro es igual al radio del cilindro (consulte aquí) , por lo que x = r .
Entonces, volumen de la esfera, V = 4*π*r^3/3 .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to find the biggest sphere // that can be inscribed within a right // circular cylinder which in turn is inscribed // within a frustum #include <bits/stdc++.h> using namespace std; // Function to find the biggest sphere float sph(float r, float R, float h) { // the radii and height cannot be negative if (r < 0 && R < 0 && h < 0) return -1; // radius of the sphere float x = r; // volume of the sphere float V = (4 * 3.14 * pow(r, 3)) / 3; return V; } // Driver code int main() { float r = 5, R = 8, h = 11; cout << sph(r, R, h) << endl; return 0; }
Java
// Java Program to find the biggest sphere // that can be inscribed within a right // circular cylinder which in turn is inscribed // within a frustum import java.lang.Math; class gfg { // Function to find the biggest sphere static float sph(float r, float R, float h) { // the radii and height cannot be negative if (r < 0 && R < 0 && h < 0) return -1; // radius of the sphere float x = r; // volume of the sphere float V = (float)(4 * 3.14f * Math.pow(r, 3)) / 3; return V; } // Driver code public static void main(String[] args) { float r = 5, R = 8, h = 11; System.out.println(sph(r, R, h)); } } // This Code is contributed by Code_Mech.
Python3
# Python3 Program to find the biggest sphere # that can be inscribed within a right # circular cylinder which in turn is inscribed # within a frustum import math as mt # Function to find the biggest sphere def sph(r, R, h): # the radii and height cannot # be negative if (r < 0 and R < 0 and h < 0): return -1 # radius of the sphere x = r # volume of the sphere V = (4 * 3.14 * pow(r, 3)) / 3 return V # Driver code r, R, h = 5, 8, 11 print(sph(r, R, h)) # This code is contributed by # Mohit kumar 29
C#
// C# Program to find the biggest sphere // that can be inscribed within a right // circular cylinder which in turn is // inscribed within a frustum using System; class gfg { // Function to find the biggest sphere static float sph(float r, float R, float h) { // the radii and height // cannot be negative if (r < 0 && R < 0 && h < 0) return -1; // radius of the sphere float x = r; // volume of the sphere float V = (float)(4 * 3.14f * Math.Pow(r, 3)) / 3; return V; } // Driver code public static void Main() { float r = 5, R = 8, h = 11; Console.WriteLine(sph(r, R, h)); } } // This code is contributed by Ryuga
PHP
<?php // PHP Program to find the biggest sphere // that can be inscribed within a right // circular cylinder which in turn is // inscribed within a frustum Function // to find the biggest sphere function sph($r, $R, $h) { // the radii and height // cannot be negative if ($r < 0 && $R < 0 && $h < 0) return -1; // radius of the sphere $x = $r; // volume of the sphere $V = (4 * 3.14 * pow($r, 3)) / 3; return $V; } // Driver code $r = 5; $R = 8; $h = 11; echo sph($r, $R, $h); #This Code is contributed by ajit.. ?>
Javascript
<script> // javascript Program to find the biggest sphere // that can be inscribed within a right // circular cylinder which in turn is inscribed // within a frustum // Function to find the biggest sphere function sph(r , R , h) { // the radii and height cannot be negative if (r < 0 && R < 0 && h < 0) return -1; // radius of the sphere var x = r; // volume of the sphere var V = ((4 * 3.14 * Math.pow(r, 3)) / 3); return V; } // Driver code var r = 5, R = 8, h = 11; document.write(sph(r, R, h).toFixed(5)); // This code is contributed by Amit Katiyar </script>
523.333
Complejidad de tiempo: O (logr)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA