Varilla más larga que se puede insertar dentro de un cilindro circular recto

Dado un cilindro circular recto de altura  h     y radio  r     . La tarea es encontrar la longitud de la varilla más larga que se puede insertar dentro de ella.
Ejemplos
 

Input : h = 4, r = 1.5
Output : 5

Input : h= 12, r = 2.5
Output : 13

Enfoque
A partir de la figura, está claro que podemos obtener la longitud de la barra usando el teorema de Pitágoras, tratando la altura del cilindro como perpendicular , el diámetro como base y la longitud de la barra como hipotenusa .
Entonces, l 2 = h 2 + 4*r 2 .
Por lo tanto, 
 

l = √(h2 + 4*r2)

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ Program to find the longest rod
// that can be fit within a right circular cylinder
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the side of the cube
float rod(float h, float r)
{
 
    // height and radius cannot be negative
    if (h < 0 && r < 0)
        return -1;
 
    // length of rod
    float l = sqrt(pow(h, 2) + 4 * pow(r, 2));
    return l;
}
 
// Driver code
int main()
{
    float h = 4, r = 1.5;
 
    cout << rod(h, r) << endl;
 
    return 0;
}

Java

// Java Program to find the longest rod
// that can be fit within a right circular cylinder
 
import java.io.*;
 
class GFG {
    
 
// Function to find the side of the cube
static float rod(float h, float r)
{
 
    // height and radius cannot be negative
    if (h < 0 && r < 0)
        return -1;
 
    // length of rod
    float l = (float)(Math.sqrt(Math.pow(h, 2) + 4 * Math.pow(r, 2)));
    return l;
}
 
// Driver code
 
 
    public static void main (String[] args) {
            float h = 4;
            float r = 1.5f;
            System.out.print(rod(h, r));
    }
}
// This code is contributed by anuj_67..

Python 3

# Python 3 Program to find the longest
# rod that can be fit within a right
# circular cylinder
import math
 
# Function to find the side of the cube
def rod(h, r):
     
    # height and radius cannot
    # be negative
    if (h < 0 and r < 0):
        return -1
 
    # length of rod
    l = (math.sqrt(math.pow(h, 2) +
               4 * math.pow(r, 2)))
    return float(l)
 
# Driver code
h , r = 4, 1.5
print(rod(h, r))
 
# This code is contributed
# by PrinciRaj1992

C#

// C# Program to find the longest
// rod that can be fit within a
// right circular cylinder
using System;
 
class GFG
{
 
// Function to find the side
// of the cube
static float rod(float h, float r)
{
 
    // height and radius cannot
    // be negative
    if (h < 0 && r < 0)
        return -1;
 
    // length of rod
    float l = (float)(Math.Sqrt(Math.Pow(h, 2) +
                            4 * Math.Pow(r, 2)));
    return l;
}
 
// Driver code
public static void Main ()
{
    float h = 4;
    float r = 1.5f;
    Console.WriteLine(rod(h, r));
}
}
 
// This code is contributed by shs

PHP

<?php
// PHP Program to find the longest
// rod that can be fit within a
// right circular cylinder
 
// Function to find the side
// of the cube
function rod($h, $r)
{
 
    // height and radius cannot
    // be negative
    if ($h < 0 && $r < 0)
        return -1;
 
    // length of rod
    $l = sqrt(pow($h, 2) + 4 * pow($r, 2));
    return $l;
}
 
// Driver code
$h = 4; $r = 1.5;
 
echo rod($h, $r) . "\n";
 
// This code is contributed
// by Akanksha Rai
?>

Javascript

<script>
  
// javascript Program to find the longest rod
// that can be fit within a right circular cylinder
 
// Function to find the side of the cube
function rod(h , r)
{
 
    // height and radius cannot be negative
    if (h < 0 && r < 0)
        return -1;
 
    // length of rod
    var l = (Math.sqrt(Math.pow(h, 2) + 4 * Math.pow(r, 2)));
    return l;
}
 
// Driver code
var h = 4;
var r = 1.5;
document.write(rod(h, r));
 
// This code contributed by shikhasingrajput
 
</script>
Producción: 

5

 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *