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 = 16Entrada: 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>
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