Dados dos números enteros, X e Y, encuentre el mayor de X^Y e Y^X o determine si son iguales.
Ejemplos:
Input : 2 3 Output : 3^2 We know 3^2 = 9 and 2^3 = 8. Input : 2 4 Output : Equal
Una solución simple es calcular x^y repitiendo y veces, pero si los valores de x e y son demasiado grandes, se producirá un desbordamiento.
Para resolver el problema de desbordamiento, podemos simplificar la ecuación tomando el logaritmo.
log(x^y) = y* log(x)
Ahora, esta ecuación no causará desbordamiento y podemos comparar dos valores directamente.
C++
// C++ program to print greater of x^y and // y^x #include <bits/stdc++.h> using namespace std; void printGreater(double x, double y) { long double X = y * log(x); long double Y = x * log(y); if (abs(X - Y) < 1e-9) { cout << "Equal"; } else if (X > Y) { cout << x << "^" << y; } else { cout << y << "^" << x; } } int main() { double x = 5, y = 8; printGreater(x, y); return 0; }
Java
// Java program to print // greater of x^y and y^x import java.io.*; class GFG { static void printGreater(int x, int y) { double X = y * Math.log(x); double Y = x * Math.log(y); if (Math.abs(X - Y) < 1e-9) { System.out.println("Equal"); } else if (X > Y) { System.out.println(x + "^" + y); } else { System.out.println(y + "^" + x); } } // Driver Code public static void main (String[] args) { int x = 5, y = 8; printGreater(x, y); } } // This code is contributed // by anuj_67.
Python3
# Python3 program to print greater # of x^y and y^x import math def printGreater(x, y): X = y * math.log(x); Y = x * math.log(y); if (abs(X - Y) < 1e-9): print("Equal"); elif (X > Y): print(x, "^", y); else: print(y, "^", x); # Driver Code x = 5; y = 8; printGreater(x, y); # This code is contributed by mits
C#
// C# program to print // greater of x^y and y^x using System; class GFG { static void printGreater(int x, int y) { double X = y * Math.Log(x); double Y = x * Math.Log(y); if (Math.Abs(X - Y) < 1e-9) { Console.WriteLine("Equal"); } else if (X > Y) { Console.WriteLine(x + "^" + y); } else { Console.WriteLine(y + "^" + x); } } // Driver Code public static void Main () { int x = 5, y = 8; printGreater(x, y); } } // This code is contributed // by anuj_67.
PHP
<?php // PHP program to print greater // of x^y and y^x function printGreater($x, $y) { $X = $y * log($x); $Y = $x * log($y); if (abs($X - $Y) < 1e-9) { echo "Equal"; } else if ($X > $Y) { echo $x . "^" . $y; } else { echo $y . "^" . $x; } } // Driver Code $x = 5; $y = 8; printGreater($x, $y); // This code is contributed by mits ?>
Javascript
<script> // Javascript program to print greater of x^y and // y^x function printGreater(x, y) { let X = y * Math.log(x); let Y = x * Math.log(y); if (Math.abs(X - Y) < 1e-9) { document.write("Equal"); } else if (X > Y) { document.write(x + "^" + y); } else { document.write(y + "^" + x); } } // Driver Code let x = 5, y = 8; printGreater(x, y); </script>
Producción:
5^8
Publicación traducida automáticamente
Artículo escrito por Gautam Karakoti y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA