Dado un número entero N , la tarea es encontrar el producto de N con su dígito impar más grande. Si no hay un dígito impar en N , imprima -1 como salida.
Ejemplos:
Entrada: 12345
Salida: 61725
El dígito impar más grande en 12345 es 5 y 12345 * 5 = 61725
Entrada: 24068
Salida: -1
Enfoque: recorra todos los dígitos de N y establezca maxOdd = -1 , si el dígito actual es impar y > maxOdd , actualice maxOdd = current digit .
Si al final, maxOdd = -1 , luego imprime -1 ; de lo contrario, imprime N * maxOdd .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find the product of N // with its largest odd digit #include <bits/stdc++.h> using namespace std; // Function to return the largest odd digit in n int largestOddDigit(int n) { // If all digits are even then -1 will be returned int maxOdd = -1; while (n > 0) { // Last digit from n int digit = n % 10; // If current digit is odd and > maxOdd if (digit % 2 == 1 && digit > maxOdd) maxOdd = digit; // Remove last digit n = n / 10; } // Return the maximum odd digit return maxOdd; } // Function to return the product of n // with its largest odd digit int getProduct(int n) { int maxOdd = largestOddDigit(n); // If there are no odd digits in n if (maxOdd == -1) return -1; // Product of n with its largest odd digit return (n * maxOdd); } // Driver code int main() { int n = 12345; cout << getProduct(n); return 0; }
Java
// Java program to find the product of N // with its largest odd digit class GFG { // Function to return the largest // odd digit in n static int largestOddDigit(int n) { // If all digits are even then -1 // will be returned int maxOdd = -1; while (n > 0) { // Last digit from n int digit = n % 10; // If current digit is odd and > maxOdd if (digit % 2 == 1 && digit > maxOdd) maxOdd = digit; // Remove last digit n = n / 10; } // Return the maximum odd digit return maxOdd; } // Function to return the product of n // with its largest odd digit static int getProduct(int n) { int maxOdd = largestOddDigit(n); // If there are no odd digits in n if (maxOdd == -1) return -1; // Product of n with its largest odd digit return (n * maxOdd); } // Driver code public static void main(String[] args) { int n = 12345; System.out.println(getProduct(n)); } } // This code is contributed by chandan_jnu
Python3
# Python3 program to find the product # of N with its largest odd digit # Function to return the largest # odd digit in n def largestOddDigit(n) : # If all digits are even then -1 # will be returned maxOdd = -1 while (n > 0) : # Last digit from n digit = n % 10 # If current digit is odd and > maxOdd if (digit % 2 == 1 and digit > maxOdd) : maxOdd = digit # Remove last digit n = n // 10 # Return the maximum odd digit return maxOdd # Function to return the product # of n with its largest odd digit def getProduct(n) : maxOdd = largestOddDigit(n) # If there are no odd digits in n if (maxOdd == -1) : return -1 # Product of n with its largest # odd digit return (n * maxOdd) # Driver code if __name__ == "__main__" : n = 12345 print(getProduct(n)) # This code is contributed by Ryuga
C#
// C# program to find the product of N // with its largest odd digit using System; class GFG { // Function to return the largest // odd digit in n static int largestOddDigit(int n) { // If all digits are even then -1 // will be returned int maxOdd = -1; while (n > 0) { // Last digit from n int digit = n % 10; // If current digit is odd and > maxOdd if (digit % 2 == 1 && digit > maxOdd) maxOdd = digit; // Remove last digit n = n / 10; } // Return the maximum odd digit return maxOdd; } // Function to return the product of n // with its largest odd digit static int getProduct(int n) { int maxOdd = largestOddDigit(n); // If there are no odd digits in n if (maxOdd == -1) return -1; // Product of n with its largest odd digit return (n * maxOdd); } // Driver code public static void Main() { int n = 12345; Console.Write(getProduct(n)); } } // This code is contributed // by Akanksha_Rai
PHP
<?php // PHP program to find the product // of N with its largest odd digit // Function to return the largest // odd digit in n function largestOddDigit($n) { // If all digits are even then // -1 will be returned $maxOdd = -1; while ($n > 0) { // Last digit from n $digit = $n % 10; // If current digit is odd and > maxOdd if ($digit % 2 == 1 && $digit > $maxOdd) $maxOdd = $digit; // Remove last digit $n = $n / 10; } // Return the maximum odd digit return $maxOdd; } // Function to return the product // of n with its largest odd digit function getProduct($n) { $maxOdd = largestOddDigit($n); // If there are no odd digits in n if ($maxOdd == -1) return -1; // Product of n with its largest // odd digit return ($n * $maxOdd); } // Driver code $n = 12345; echo getProduct($n); // This code is contributed // by Akanksha Rai ?>
Javascript
<script> // javascript program to find the product of N // with its largest odd digit // Function to return the largest // odd digit in n function largestOddDigit(n) { // If all digits are even then -1 // will be returned var maxOdd = -1; while (n > 0) { // Last digit from n var digit = n % 10; // If current digit is odd and > maxOdd if (digit % 2 == 1 && digit > maxOdd) maxOdd = digit; // Remove last digit n = n / 10; } // Return the maximum odd digit return maxOdd; } // Function to return the product of n // with its largest odd digit function getProduct(n) { var maxOdd = largestOddDigit(n); // If there are no odd digits in n if (maxOdd == -1) return -1; // Product of n with its largest odd digit return (n * maxOdd); } // Driver code var n = 12345; document.write(getProduct(n)); // This code is contributed by Princi Singh </script>
Producción:
61725
Complejidad de tiempo: O(log 10 n), donde n representa el entero dado.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.