Dado aquí es un cono circular recto de radio r y altura perpendicular h , que está inscrito en un cubo que a su vez está inscrito en una esfera, la tarea es encontrar el radio de la esfera.
Ejemplos:
Input: h = 5, r = 6 Output: 1.57306 Input: h = 8, r = 11 Output: 2.64156
Enfoque :
- Sea el lado del cubo = a
- Sea el radio de la esfera = R
- Sabemos, a=h*r√2/(h+√2*r) (Consulte aquí)
- Además, R=a/2 (consulte aquí)
- Entonces, R = (h*r√2/(h+√2*r))/2
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to find the biggest sphere // which is inscribed within a cube which in turn // inscribed within a right circular cone #include <bits/stdc++.h> using namespace std; // Function to find the radius of the sphere float sphereSide(float h, float r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // radius of the sphere float R = ((h * r * sqrt(2)) / (h + sqrt(2) * r)) / 2; return R; } // Driver code int main() { float h = 5, r = 6; cout << sphereSide(h, r) << endl; return 0; }
Java
// Java Program to find the biggest sphere // which is inscribed within a cube which in turn // inscribed within a right circular cone import java.lang.Math; class GFG { // Function to find the radius of the sphere static float sphereSide(float h, float r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // radius of the sphere float R = (float)((h * r * Math.sqrt(2)) / (h + Math.sqrt(2) * r)) / 2; return R; } // Driver code public static void main(String[] args) { float h = 5, r = 6; System.out.println(sphereSide(h, r)); } } // This code is contributed by Code_Mech.
Python3
# Program to find the biggest sphere # which is inscribed within a cube which in turn # inscribed within a right circular cone import math # Function to find the radius of the sphere def sphereSide(h, r): # height and radius cannot be negative if h < 0 and r < 0: return -1 # radius of the sphere R = (((h * r * math.sqrt(2))) / (h + math.sqrt(2) * r) / 2) return R # Driver code h = 5; r = 6 print(sphereSide(h, r)) # This code is contributed by Shrikant13
C#
// C# Program to find the biggest sphere // which is inscribed within a cube which in turn // inscribed within a right circular cone using System; class GFG { // Function to find the radius of the sphere static float sphereSide(float h, float r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // radius of the sphere float R = (float)((h * r * Math.Sqrt(2)) / (h + Math.Sqrt(2) * r)) / 2; return R; } // Driver code public static void Main() { float h = 5, r = 6; Console.WriteLine(sphereSide(h, r)); } } // This code is contributed by Code_Mech
PHP
<?php // PHP Program to find the biggest sphere // which is inscribed within a cube which in turn // inscribed within a right circular cone // Function to find the radius of the sphere function sphereSide($h, $r) { // height and radius cannot be negative if ($h < 0 && $r < 0) return -1; // radius of the sphere $R = (($h * $r * sqrt(2)) / ($h + sqrt(2) * $r)) / 2; return $R; } // Driver code $h = 5; $r = 6; echo(sphereSide($h, $r)); // This code is contributed by Code_Mech. ?>
Javascript
<script> // javascript Program to find the biggest sphere // which is inscribed within a cube which in turn // inscribed within a right circular cone // Function to find the radius of the sphere function sphereSide(h , r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // radius of the sphere var R = ((h * r * Math.sqrt(2)) / (h + Math.sqrt(2) * r)) / 2; return R; } // Driver code var h = 5, r = 6; document.write(sphereSide(h, r).toFixed(5)); // This code is contributed by Amit Katiyar </script>
Producción
1.57306
Complejidad de tiempo: O(logn)
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