Encuentra el exponencial más grande entre dos exponenciales

Dados cuatro números enteros A , B , C y D . La tarea es encontrar cuál es mayor A B o C D .

Ejemplos: 

Entrada: A = 2, B = 5, C = 4, D = 2 
Salida: 2^5 
2 5 = 32 
4 2 = 16

Entrada: A = 8, B = 29, C = 60, D = 59 
Salida: 60^59 
 

Enfoque ingenuo: calcule los valores de A B y C D y luego compárelos. Este enfoque fallará cuando los valores sean mayores, digamos 562145 321457 .

Enfoque eficiente: Usando log, podemos escribir los términos como log(A B ) y log(C D ) que también se pueden escribir como B * log(A) y D * log(C) . Estos valores son más fáciles de calcular y comparar que los valores originales.

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 find whether a^b is greater or c^d
void compareValues(int a, int b, int c, int d)
{
 
    // Find b * log(a)
    double log1 = log10(a);
    double num1 = log1 * b;
 
    // Find d * log(c)
    double log2 = log10(c);
    double num2 = log2 * d;
 
    // Compare both values
    if (num1 > num2)
        cout << a  << "^"  <<  b;
    else
        cout << c << "^" << d;
}
 
// Driver code
int main ()
{
    int a = 8, b = 29, c = 60, d = 59;
    compareValues(a, b, c, d);
}
 
 
// This code is contributed by ihritik

Java

// Java implementation of the approach
class GFG {
 
    // Function to find whether a^b is greater or c^d
    static void compareValues(int a, int b, int c, int d)
    {
 
        // Find b * log(a)
        double log1 = Math.log10(a);
        double num1 = log1 * b;
 
        // Find d * log(c)
        double log2 = Math.log10(c);
        double num2 = log2 * d;
 
        // Compare both values
        if (num1 > num2)
            System.out.println(a + "^" + b);
        else
            System.out.println(c + "^" + d);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int a = 8, b = 29, c = 60, d = 59;
        compareValues(a, b, c, d);
    }
}

Python3

# Python3 implementation of the approach
import math
 
# Function to find whether
# a^b is greater or c^d
def compareValues(a, b, c, d):
# Find b * log(a)
    log1 = math.log10(a)
    num1 = log1 * b
 
    # Find d * log(c)
    log2 = math.log10(c)
    num2 = log2 * d
 
    # Compare both values
    if num1 > num2 :
        print(a, '^', b)
    else :
        print(c, '^', d)
 
# Driver code
a = 8
b = 29
c = 60
d = 59
 
# Function call
compareValues(a, b, c, d)
 
# This code is contributed by nidhiva

C#

// C# implementation of the approach
using System;
 
class GFG
{
 
    // Function to find whether
    // a^b is greater or c^d
    static void compareValues(int a, int b,
                              int c, int d)
    {
 
        // Find b * log(a)
        double log1 = Math.Log10(a);
        double num1 = log1 * b;
 
        // Find d * log(c)
        double log2 = Math.Log10(c);
        double num2 = log2 * d;
 
        // Compare both values
        if (num1 > num2)
            Console.WriteLine(a + "^" + b);
        else
            Console.WriteLine(c + "^" + d);
    }
 
    // Driver code
    public static void Main ()
    {
        int a = 8, b = 29, c = 60, d = 59;
        compareValues(a, b, c, d);
    }
}
 
// This code is contributed by ihritik

Javascript

<script>
 
// Javascript implementation of the approach
 
// Function to find whether a^b is greater or c^d
function compareValues(a, b, c, d)
{
 
    // Find b * log(a)
    let log1 = Math.log(a) / Math.log(10);
    let num1 = log1 * b;
 
    // Find d * log(c)
    let log2 = Math.log(c) / Math.log(10);
    let num2 = log2 * d;
 
    // Compare both values
    if (num1 > num2)
        document.write(a + "^" + b);
    else
        document.write(c + "^" + d);
}
 
// Driver code
let a = 8, b = 29, c = 60, d = 59;
compareValues(a, b, c, d);
 
// This code is contributed by souravmahato348
 
</script>
Producción: 

60^59

 

Publicación traducida automáticamente

Artículo escrito por itsvinayak 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 *