Given two numbers A and B, the task is to check that A and B are in the golden ratio.
Golden Ratio: Two numbers are said to be in the golden ratio if their ratio is the same as the ratio of the sum of the two numbers to the larger number. Here a > b > 0, Below is the geometric representation of the Golden ratio:Â
Examples: Â
Input: A = 1, B = 0.618 Output: Yes Explanation: These two numbers together forms Golden ratio
Input: A = 61.77, B = 38.22 Output Yes Explanation: These two numbers together forms Golden ratio
Approach: The idea is to find two ratios and check that this ratio is equal to the Golden ratio. That is 1.618. Â
// Here A denotes the larger number
Â
Below is the implementation of the above approach:
C++
// C++ implementation to check // whether two numbers are in // golden ratio with each other #include <bits/stdc++.h> using namespace std; Â
// Function to check that two // numbers are in golden ratio bool checkGoldenRatio( float a,                       float b) {   // Swapping the numbers such   // that A contains the maximum   // number between these numbers   if (a <= b)   {     float temp = a;     a = b;     b = temp;   } Â
  // First Ratio   std::stringstream ratio1;   ratio1 << std :: fixed <<             std :: setprecision(3) <<             (a / b); Â
  // Second Ratio   std::stringstream ratio2;   ratio2 << std :: fixed <<             std :: setprecision(3) <<             (a + b) / a; Â
  // Condition to check that two   // numbers are in golden ratio   if ((ratio1.str() == ratio2.str()) &&       ratio1.str() == "1.618" )   {     cout << "Yes" << endl;     return true ;   }   else   {     cout << "No" << endl;     return false ;   } }   // Driver code int main() {   float a = 0.618;   float b = 1; Â
  // Function Call   checkGoldenRatio(a, b); Â
  return 0; } Â
// This code is contributed by divyeshrabadiya07 |
Java
// Java implementation to check // whether two numbers are in // golden ratio with each other class GFG{      // Function to check that two // numbers are in golden ratio public static Boolean checkGoldenRatio( float a,                                        float b) {          // Swapping the numbers such     // that A contains the maximum     // number between these numbers     if (a <= b)     {         float temp = a;         a = b;         b = temp;     }          // First Ratio     String ratio1 = String.format( "%.3f" , a / b);          // Second Ratio     String ratio2 = String.format( "%.3f" , (a + b) / a);          // Condition to check that two     // numbers are in golden ratio     if (ratio1.equals(ratio2) &&         ratio1.equals( "1.618" ))     {         System.out.println( "Yes" );         return true ;     }     else     {         System.out.println( "No" );          return false ;     } } Â
// Driver code public static void main(String []args) {     float a = ( float ) 0.618 ;     float b = 1 ;          // Function Call     checkGoldenRatio(a, b); } } Â
// This code is contributed by rag2127 |
Python3
# Python3 implementation to check # whether two numbers are in # golden ratio with each other Â
# Function to check that two # numbers are in golden ratio def checkGoldenRatio(a, b):          # Swapping the numbers such     # that A contains the maximum     # number between these numbers     a, b = max (a, b), min (a, b)          # First Ratio     ratio1 = round (a / b, 3 )          # Second Ratio     ratio2 = round ((a + b) / a, 3 )     # Condition to check that two     # numbers are in golden ratio     if ratio1 = = ratio2 and \        ratio1 = = 1.618 :         print ( "Yes" )         return True     else :         print ( "No" )         return False          # Driver Code if __name__ = = "__main__" :     a = 0.618     b = 1          # Function Call     checkGoldenRatio(a, b) |
C#
// C# implementation to check // whether two numbers are in // golden ratio with each other using System; using System.Collections.Generic; class GFG {          // Function to check that two     // numbers are in golden ratio     static bool checkGoldenRatio( float a,                           float b)     {       // Swapping the numbers such       // that A contains the maximum       // number between these numbers       if (a <= b)       {         float temp = a;         a = b;         b = temp;       }             // First Ratio       string ratio1 = String.Format( "{0:0.000}" , a / b);             // Second Ratio       string ratio2 = String.Format( "{0:0.000}" , (a + b) / a); Â
      // Condition to check that two       // numbers are in golden ratio       if (ratio1 == ratio2 && ratio1 == "1.618" )       {         Console.WriteLine( "Yes" );         return true ;       }       else       {         Console.WriteLine( "No" );         return false ;       }     }      // Driver code   static void Main() {       float a = ( float )0.618;       float b = 1;             // Function Call       checkGoldenRatio(a, b);   } } Â
// This code is contributed by divyesh072019 |
Javascript
<script> Â
// Javascript implementation to check // whether two numbers are in // golden ratio with each other Â
// Function to check that two // numbers are in golden ratio function checkGoldenRatio(a, b) {           // Swapping the numbers such     // that A contains the maximum     // number between these numbers     if (a <= b)     {         let temp = a;         a = b;         b = temp;     }           // First Ratio     let ratio1 = (a / b).toFixed(3);           // Second Ratio     let ratio2 = ((a + b) / a).toFixed(3);           // Condition to check that two     // numbers are in golden ratio     if ((ratio1 == ratio2) &&         ratio1 == "1.618" )     {         document.write( "Yes" );         return true ;     }     else     {         document.write( "No" );         return false ;     } } Â
// Driver Code          let a = 0.618;     let b = 1;           // Function Call     checkGoldenRatio(a, b); Â
</script> |
Yes
Â
Time Complexity: O(1)
Auxiliary Space: O(1)
References: https://en.wikipedia.org/wiki/Golden_ratioÂ
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!