Program to find the shortest distance between diagonal and edge skew of a Cube - GeeksforGeeks

17 Mar, 2021
Given an integer A, denoting the length of a cube, the task is to find the shortest distance between the diagonal of a cube and an edge skew to it i.e. KL in the below figure.
Examples :
Input: A = 2Output: 1.4142Explanation:Length of KL = A / √2Length of KL = 2 / 1.41 = 1.4142
Input: A = 3Output: 2.1213
Approach: The idea to solve the problem is based on the following mathematical formula:
Let’s draw a perpendicular from K to down face of cube as Q.Using Pythagorean Theorem in triangle QKL,
KL2 = QK2 + QL2
l2 = (a/2)2 + (a/2)2 
l2 = 2 * (a/2)2
l = a / sqrt(2)
Below is the implementation of the above approach:
C++
Java
Python3
C#
PHP
Javascript
// C++ program for the above approach #include <bits/stdc++.h>using namespace std; // Function to find the shortest distance// between the diagonal of a cube and// an edge skew to itfloat diagonalLength(float a){    // Stores the required distance    float L = a / sqrt(2);     // Print the required distance    cout << L;} // Driver Codeint main(){    // Given side of the cube    float a = 2;     // Function call to find the shortest    // distance between the diagonal of a    // cube and an edge skew to it    diagonalLength(a);     return 0;}
// Java program for the above approach class GFG {     // Function to find the shortest    // distance between the diagonal of a    // cube and an edge skew to it    static void diagonalLength(float a)    {        // Stores the required distance        float L = a / (float)Math.sqrt(2);         // Print the required distance        System.out.println(L);    }     // Driver Code    public static void main(String[] args)    {        // Given side of the cube        float a = 2;         // Function call to find the shortest        // distance between the diagonal of a        // cube and an edge skew to it        diagonalLength(a);    }}
# Python3 program for the above approach from math import sqrt # Function to find the shortest# distance between the diagonal of a# cube and an edge skew to itdef diagonalLength(a):       # Stores the required distance    L = a / sqrt(2)     # Print the required distance    print(L)  # Given side of the cubea = 2 # Function call to find the shortest# distance between the diagonal of a# cube and an edge skew to itdiagonalLength(a)
// C# program for the above approach using System;class GFG {     // Function to find the shortest    // distance between the diagonal of a    // cube and an edge skew to it    static void diagonalLength(float a)    {        // Stores the required distance        float L = a / (float)Math.Sqrt(2);         // Print the required distance        Console.Write(L);    }     // Driver Code    public static void Main()    {        // Given side of the cube        float a = 2;         // Function call to find the shortest        // distance between the diagonal of a        // cube and an edge skew to it        diagonalLength(a);    }}
<?php// PHP program for the above approach   // Function to find the shortest// distance between the diagonal of a// cube and an edge skew to itfunction diagonalLength($a){    // Stores the required distance    $L = $a / sqrt(2);     # Print the required distance    echo $L;} // Given side of the cube$a = 2; // Function call to find the shortest// distance between the diagonal of a// cube and an edge skew to itdiagonalLength($a); ?>
<script>// javascript program for the above approach // Function to find the shortest distance// between the diagonal of a cube and// an edge skew to itfunction diagonalLength( a){     // Stores the required distance    let L = a / Math.sqrt(2);     // Print the required distance     document.write( L.toFixed(5));} // Driver Code     // Given side of the cube    let a = 2;     // Function call to find the shortest    // distance between the diagonal of a    // cube and an edge skew to it    diagonalLength(a); // This code is contributed by todaysgaurav </script>
1.41421
 
Time Complexity: O(1)Auxiliary Space: O(1)
todaysgaurav
area-volume-programs
Geometric
Mathematical
Mathematical
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Equation of circle when three points on the circle are given
Circle and Lattice Points
Convex Hull using Divide and Conquer Algorithm
Line Clipping | Set 2 (Cyrus Beck Algorithm)
Minimum Cost Polygon Triangulation
Program for Fibonacci numbers
C++ Data Types
Write a program to print all permutations of a given string
Set in C++ Standard Template Library (STL)
Coin Change | DP-7