Dados dos enteros X e Y , la tarea es comparar X Y e Y X para valores grandes de X e Y .
Ejemplos:
Entrada: X = 2, Y = 3
Salida: 2^3 < 3^2
2 3 < 3 2
Entrada: X = 4, Y = 5
Salida: 4^5 > 5^4
Enfoque ingenuo: un enfoque básico es encontrar los valores X Y e Y X y compararlos, lo que puede desbordarse ya que los valores de X e Y pueden ser grandes
Mejor enfoque: tomando el registro de ambas ecuaciones, log (X Y ) = Y * log(X) y log(Y X ) = X * log(Y) . Ahora, estos valores se pueden comparar fácilmente sin desbordamientos.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to compare x^y and y^x void compareVal(int x, int y) { // Storing values OF x^y AND y^x long double a = y * log(x); long double b = x * log(y); // Comparing values if (a > b) cout << x << "^" << y << " > " << y << "^" << x; else if (a < b) cout << x << "^" << y << " < " << y << "^" << x; else if (a == b) cout << x << "^" << y << " = " << y << "^" << x; } // Driver code int main() { long double x = 4, y = 5; compareVal(x, y); return 0; }
Java
// Java implementation of the approach import java.util.*; class GFG { // Function to compare x^y and y^x static void compareVal(int x, int y) { // Storing values OF x^y AND y^x double a = y * Math.log(x); double b = x * Math.log(y); // Comparing values if (a > b) System.out.print(x + "^" + y + " > " + y + "^" + x); else if (a < b) System.out.print(x + "^" + y + " < " + y + "^" + x); else if (a == b) System.out.print(x + "^" + y + " = " + y + "^" + x ); } // Driver code public static void main(String[] args) { int x = 4, y = 5; compareVal(x, y); } } // This code is contributed by 29AjayKumar
Python3
# Python3 implementation of the approach from math import log # Function to compare x^y and y^x def compareVal(x, y) : # Storing values OF x^y AND y^x a = y * log(x); b = x * log(y); # Comparing values if (a > b) : print(x, "^", y, ">", y, "^", x); elif (a < b) : print(x, "^", y, "<", y ,"^", x); elif (a == b) : print(x, "^", y, "=", y, "^", x); # Driver code if __name__ == "__main__" : x = 4; y = 5; compareVal(x, y); # This code is contributed by AnkitRai01
C#
// C# implementation of the approach using System; class GFG { // Function to compare x^y and y^x static void compareVal(double x, double y) { // Storing values OF x^y AND y^x double a = y * Math.Log(x); double b = x * Math.Log(y); // Comparing values if (a > b) Console.Write (x + "^" + y + " > " + y + "^" + x); else if (a < b) Console.Write (x + "^" + y + " < "+ y + "^" + x); else if (a == b) Console.Write (x + "^" + y + " = " + y + "^" + x ); } // Driver code static public void Main () { double x = 4, y = 5; compareVal(x, y); } } // This Code is contributed by ajit.
Javascript
<script> // Javascript implementation of the approach // Function to compare x^y and y^x function compareVal(x, y) { // Storing values OF x^y AND y^x let a = y * Math.log(x); let b = x * Math.log(y); // Comparing values if (a > b) document.write(x + "^" + y + " > " + y + "^" + x); else if (a < b) document.write(x + "^" + y + " < " + y + "^" + x); else if (a == b) document.write(x + "^" + y + " = " + y + "^" + x); } // Driver code let x = 4, y = 5; compareVal(x, y); </script>
4^5 > 5^4
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por manoje1729 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA