Encuentra el mayor de x^y e y^x

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

Deja una respuesta

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