Dado un número entero N que contiene el dígito 4 al menos una vez. La tarea es dividir el número en dos partes x1 y x2 tal que:
- x1 + x2 = norte .
- Y ninguna de las partes contiene el dígito 4 .
Tenga en cuenta que puede haber varias respuestas.
Ejemplos:
Entrada: N = 4
Salida: 1 3
1 + 3 = 4
Entrada: N = 9441
Salida: 9331 110
9331 + 110 = 9441
Enfoque: dado que el número puede ser demasiado grande, tome el número como una string. Dividirlo en dos strings:
- Para la string 1, encuentre todas las posiciones del dígito 4 en la string, cámbielo a 3, también podemos cambiarlo a otro número.
- Para la segunda string, coloque 1 en todas las posiciones del dígito 4 y coloque 0 en todas las posiciones restantes desde la primera posición del dígito 4 hasta el final de la string.
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 print the two parts void twoParts(string str) { int flag = 0; string a = ""; // Find the position of 4 for (int i = 0; i < str.length(); i++) { if (str[i] == '4') { str[i] = '3'; a += '1'; flag = 1; } // If current character is not '4' // but appears after the first // occurrence of '4' else if (flag) a += '0'; } // Print both the parts cout << str << " " << a; } // Driver code int main() { string str = "9441"; twoParts(str); return 0; }
Java
// Java implementation of the approach class GfG { // Function to print the two parts static void twoParts(String str) { int flag = 0; String a = ""; char[] gfg = str.toCharArray(); // Find the position of 4 for (int i = 0; i < str.length(); i++) { if (gfg[i] == '4') { gfg[i] = '3'; a += '1'; flag = 1; } // If current character is not '4' // but appears after the first // occurrence of '4' else if (flag != 0) a += '0'; } str = new String(gfg); // Print both the parts System.out.print(str + " " + a); } // Driver code public static void main(String []args) { String str = "9441"; twoParts(str); } } // This code is contributed by Rituraj Jain
Python3
# Python3 implementation of the approach # Function to print the two parts def twoParts(string) : flag = 0; a = ""; # Find the position of 4 for i in range(len(string)) : if (string[i] == '4') : string[i] = '3'; a += '1'; flag = 1; # If current character is not '4' # but appears after the first # occurrence of '4' elif (flag) : a += '0'; string = "".join(string); # Print both the parts print(string, a); # Driver code if __name__ == "__main__" : string = "9441"; twoParts(list(string)); # This code is contributed by Ryuga
C#
// C# implementation of the approach using System; class GfG { // Function to print the two parts static void twoParts(string str) { int flag = 0; string a = ""; char[] gfg = str.ToCharArray(); // Find the position of 4 for (int i = 0; i < str.Length; i++) { if (gfg[i] == '4') { gfg[i] = '3'; a += '1'; flag = 1; } // If current character is not '4' // but appears after the first // occurrence of '4' else if (flag != 0) a += '0'; } str = new String(gfg); // Print both the parts Console.WriteLine(str + " " + a); } // Driver code static void Main() { string str = "9441"; twoParts(str); } } // This code is contributed by mits
PHP
<?php // PHP implementation of the approach // Function to print the two parts function twoParts($str) { $flag = 0; $a = ""; // Find the position of 4 for ($i = 0; $i < strlen($str); $i++) { if ($str[$i] == '4') { $str[$i] = '3'; $a .= '1'; $flag = 1; } // If current character is not '4' // but appears after the first // occurrence of '4' else if ($flag) $a .= '0'; } // Print both the parts echo $str . " " . $a; } // Driver code $str = "9441"; twoParts($str); // This code is contributed by mits ?>
Javascript
<script> // javascript implementation of the approach // Function to print the two parts function twoParts( str) { var flag = 0; var a = ""; var gfg = str.split('') ; // Find the position of 4 for (var i = 0; i < str.length; i++) { if (gfg[i] == '4') { gfg[i] = '3'; a += '1'; flag = 1; } // If current character is not '4' // but appears after the first // occurrence of '4' else if (flag != 0) a += '0'; } // Print both the parts document.write(gfg.join('') + " " + a); } // Driver code var str = "9441"; twoParts(str); // This code is contributed by bunnyram19. </script>
Producción:
9331 110
Complejidad de Tiempo: O(N)
Espacio Auxiliar: O(1), ya que no se ha tomado espacio extra.
Publicación traducida automáticamente
Artículo escrito por SURENDRA_GANGWAR y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA