Dado un cono circular recto de radio r y altura perpendicular h . Tenemos que encontrar la longitud del lado del cubo más grande que se puede inscribir en él.
Ejemplos :
Input : h = 5, r = 6 Output : 3.14613 Input : h = 8, r = 12 Output : 5.43698
Aproximación :
Sea, lado del cubo = a .
Del diagrama, podemos entender claramente usando las propiedades de los triángulos: BC/AB = DE/AD.
Por lo tanto,
r/h = (a/√2)/(h-a) or, a = h*r√2/(h+√2*r)
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to find the biggest cube // inscribed within a right circular cone #include <bits/stdc++.h> using namespace std; // Function to find the side of the cube float cubeSide(float h, float r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // side of the cube float a = (h * r * sqrt(2)) / (h + sqrt(2) * r); return a; } // Driver code int main() { float h = 5, r = 6; cout << cubeSide(h, r) << endl; return 0; }
Java
// Java Program to find the biggest cube // which can be inscribed within a right circular cone import java.io.*; class GFG { // Function to find the side of the cube static float cube(float h, float r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // side of the cube float a = (h * r * (float)Math.sqrt(2)) / (h + (float)Math.sqrt(2) * r); return a; } // Driver code public static void main (String[] args) { float h = 5, r = 6; System.out.println( cube(h, r)); } } // this article is contributed by Ishwar Gupta
Python 3
# Python3 Program to find the biggest cube # inscribed within a right circular cone import math # Function to find the side of the cube def cubeSide(h, r): # height and radius cannot # be negative if (h < 0 and r < 0): return -1 # side of the cube a = ((h * r * math.sqrt(2)) / (h + math.sqrt(2) * r)) return a # Driver code h = 5; r = 6; print(cubeSide(h, r), "\n") # This code is contributed # by Akanksha Rai
C#
// C# Program to find the // biggest cube which can be // inscribed within a right // circular cone using System; class GFG { // Function to find the side // of the cube static float cube(float h, float r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // side of the cube float a = (h * r * (float)Math.Sqrt(2)) / (h + (float)Math.Sqrt(2) * r); return a; } // Driver code public static void Main () { float h = 5, r = 6; Console.Write( cube(h, r)); } } // This code is contributed // by 29AjayKumar
PHP
<?php // PHP Program to find the biggest cube // inscribed within a right circular cone // Function to find the side of the cube function cubeSide($h, $r) { // height and radius cannot // be negative if ($h < 0 && $r < 0) return -1; // side of the cube $a = ($h * $r * sqrt(2)) / ($h + sqrt(2) * $r); return $a; } // Driver code $h = 5; $r = 6; echo cubeSide($h, $r); // This code is contributed // by Shivi_Aggarwal ?>
Javascript
<script> // javascript Program to find the biggest cube // which can be inscribed within a right circular cone // Function to find the side of the cube function cube(h , r) { // height and radius cannot be negative if (h < 0 && r < 0) return -1; // side of the cube var a = (h * r * Math.sqrt(2)) / (h + Math.sqrt(2) * r); return a; } // Driver code var h = 5, r = 6; document.write( cube(h, r).toFixed(5)); // This code is contributed by 29AjayKumar </script>
Producción:
3.14613
Complejidad de tiempo: O(1)
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