Dada la string str que representa un número con separadores (,) en el sistema numérico internacional, la tarea es convertir esta representación de string en el sistema numérico indio.
Ejemplos:
Entrada: str = “123, 456, 789”
Salida: 12, 34, 56, 789
Explicación:
La string dada representa un número en el sistema internacional. Se convierte al sistema indio.
Entrada: str = “90, 050, 000, 000”
Salida: 90, 05, 00, 00, 000
Sistema numérico internacional: el sistema numérico internacional se usa fuera del subcontinente indio para expresar números grandes. Sigue el siguiente esquema:
Número | Aplicar separadores | En palabras |
---|---|---|
1 | 1 | Una |
10 | 10 | Diez |
100 | 100 | Cien |
1000 | 1, 000 | Mil |
10000 | 10, 000 | Diez mil |
100000 | 100, 000 | Cien mil |
1000000 | 1, 000, 000 | Un millón |
10000000 | 10, 000, 000 | Diez millones |
100000000 | 100, 000, 000 | Cien millones |
1000000000 | 1, 000, 000, 000 | mil millones |
Sistema numérico indio: el sistema numérico indio se utiliza en el subcontinente indio para expresar números grandes. Sigue el siguiente esquema:
Número | Aplicar separadores | En palabras |
---|---|---|
1 | 1 | Una |
10 | 10 | Diez |
100 | 100 | Cien |
1000 | 1, 000 | Mil |
10000 | 10, 000 | Diez mil |
100000 | 1, 00, 000 | Un lakh |
1000000 | 10, 00, 000 | diez lakh |
10000000 | 1, 00, 00, 000 | un millón de rupias |
100000000 | 10, 00, 00, 000 | diez millones de rupias |
1000000000 | 100, 00, 00, 000 | cien millones de rupias |
Enfoque: A partir de las representaciones anteriores, la idea es obtener primero el número sin ningún separador. Por lo tanto:
- Elimina todos los separadores (,) de la string.
- Invierta la string .
- Procese la string y coloque un separador (,) después del tercer número.
- Ahora ponga un separador (,) después de cada segundo número. Esto convierte el número al sistema numérico indio.
- Invierta la string nuevamente e imprímala.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to convert the number // from International system // to Indian system #include <bits/stdc++.h> using namespace std; // Function to convert a number represented // in International numeric system to // Indian numeric system. string convert(string input) { // Find the length of the // input string int len = input.length(); // Removing all the separators(, ) // from the input string for (int i = 0; i < len;) { if (input[i] == ', ') { input.erase(input.begin() + i); len--; i--; } else if (input[i] == ' ') { input.erase(input.begin() + i); len--; i--; } else { i++; } } // Reverse the input string reverse(input.begin(), input.end()); // Declaring the output string string output; // Process the input string for (int i = 0; i < len; i++) { // Add a separator(, ) after the // third number if (i == 2) { output += input[i]; output += ", "; } // Then add a separator(, ) after // every second number else if (i > 2 && i % 2 == 0 && i + 1 < len) { output += input[i]; output += ", "; } else { output += input[i]; } } // Reverse the output string reverse(output.begin(), output.end()); // Return the output string back // to the main function return output; } // Driver code int main() { string input1 = "123, 456, 789"; string input2 = "90, 050, 000, 000"; cout << convert(input1) << endl; cout << convert(input2); }
Java
// Java program to convert the number // from International system // to Indian system import java.util.*; class GFG{ // Function to convert a number represented // in International numeric system to // Indian numeric system. static String convert(String input) { StringBuilder sbInput = new StringBuilder(input); // Find the length of the // sbInput int len = sbInput.length(); // Removing all the separators(, ) // from the sbInput for (int i = 0; i < len;) { if (sbInput.charAt(i) == ',') { sbInput.deleteCharAt(i); len--; i--; } else if (sbInput.charAt(i) == ' ') { sbInput.deleteCharAt(i); len--; i--; } else { i++; } } // Reverse the sbInput StringBuilder sbInputReverse = sbInput.reverse(); // Declaring the output StringBuilder output = new StringBuilder(); // Process the sbInput for (int i = 0; i < len; i++) { // Add a separator(, ) after the // third number if (i == 2) { output.append(sbInputReverse.charAt(i)); output.append(" ,"); } // Then add a separator(, ) after // every second number else if (i > 2 && i % 2 == 0 && i + 1 < len) { output.append(sbInputReverse.charAt(i)); output.append(" ,"); } else { output.append(sbInputReverse.charAt(i)); } } // Reverse the output StringBuilder reverseOutput = output.reverse(); // Return the output string back // to the main function return reverseOutput.toString(); } // Driver code public static void main(String[] args) { String input1 = "123, 456, 789"; String input2 = "90, 050, 000, 000"; System.out.println(convert(input1)); System.out.println(convert(input2)); } } // This code is contributed by offbeat
Python3
# Python3 program to convert # the number from International # system to Indian system # Function to convert a number # represented in International # numeric system to Indian numeric # system. def convert(input): # Find the length of the # input string Len = len(input) # Removing all the separators(, ) # from the input string i = 0 while(i < Len): if(input[i] == ","): input = input[:i] + input[i + 1:] Len -= 1 i -= 1 elif(input[i] == " "): input=input[:i] + input[i + 1:] Len -= 1 i -= 1 else: i += 1 # Reverse the input string input=input[::-1] # Declaring the output string output = "" # Process the input string for i in range(Len): # Add a separator(, ) after the # third number if(i == 2): output += input[i] output += " ," # Then add a separator(, ) after # every second number elif(i > 2 and i % 2 == 0 and i + 1 < Len): output += input[i] output += " ," else: output += input[i] # Reverse the output string output=output[::-1] # Return the output string back # to the main function return output # Driver code input1 = "123, 456, 789" input2 = "90, 050, 000, 000" print(convert(input1)) print(convert(input2)) # This code is contributed by avanitrachhadiya2155
Javascript
<script> // JavaScript program to convert the number // from International system // to Indian system // Function to convert a number represented // in International numeric system to // Indian numeric system. function convert(input) { // Find the length of the // input string let len = input.length; // Removing all the separators(, ) // from the input string for (let i = 0; i < len;) { if (input[i] == ',') { input = input.substring(0,i) + input.substring(i+1,); len--; i--; } else if (input[i] == ' ') { input = input.substring(0,i) + input.substring(i+1,); len--; i--; } else { i++; } } // Reverse the input string input = input.split("").reverse().join(""); // Declaring the output string let output = ""; // Process the input string for (let i = 0; i < len; i++) { // Add a separator(, ) after the // third number if (i == 2) { output += input[i]; output += " ,"; } // Then add a separator(, ) after // every second number else if (i > 2 && i % 2 == 0 && i + 1 < len) { output += input[i]; output += " ,"; } else { output += input[i]; } } // Reverse the output string output = output.split("").reverse().join(""); // Return the output string back // to the main function return output; } // Driver code let input1 = "123, 456, 789"; let input2 = "90, 050, 000, 000"; document.write(convert(input1),"</br>"); document.write(convert(input2),"</br>"); // This code is contributed by shinjanpatra </script>
12, 34, 56, 789 90, 05, 00, 00, 000