# Convert the number from International system to Indian system

• Difficulty Level : Basic
• Last Updated : 19 Sep, 2022

Given string str which represents a number with separators(, ) in the International number system, the task is to convert this string representation into the Indian Numeric System.
Examples:

Input: str = “123, 456, 789”
Output: 12, 34, 56, 789
Explanation:
The given string represents a number in the international system. It is converted to the Indian system.
Input: str = “90, 050, 000, 000”
Output: 90, 05, 00, 00, 000

International Numeric System: The International numbering system is used outside the Indian subcontinent to express large numbers. It follows the following schema:

Indian Numeric System: The Indian numbering system is used in the Indian subcontinent to express large numbers. It follows the following schema:

Approach: From the above representations, the idea is to first obtain the number without any separators. Therefore:

1. Remove all the separators(, ) from the string.
2. Reverse the string.
3. Process the string and put a separator(, ) after the third number.
4. Now put a separator(, ) after every second number. This converts the number into the Indian Numeric System.
5. Reverse the string again and print it.

Below is the implementation of the above approach:

## C++

 `// C++ program to convert the number``// from International system``// to Indian system` `#include ``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`

## C#

 `// C# program to convert the number``// from International system``// to Indian system``using` `System;``using` `System.Linq;``using` `System.Text;``using` `System.Collections.Generic;` `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[i] == ``','``) {``        ``sbInput.Remove(i, 1);``        ``len--;``        ``i--;``      ``}``      ``else` `if` `(sbInput[i] == ``' '``) {``        ``sbInput.Remove(i, 1);``        ``len--;``        ``i--;``      ``}``      ``else` `{``        ``i++;``      ``}``    ``}` `    ``// Reverse the sbInput``    ``StringBuilder sbInputReverse = ``new` `StringBuilder();` `    ``string` `st1 = ``new` `string``(``      ``sbInput.ToString().Reverse().ToArray());``    ``sbInputReverse.Append(st1);` `    ``// 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[i]);``        ``output.Append(``" ,"``);``      ``}` `      ``// Then add a separator(, ) after``      ``// every second number``      ``else` `if` `(i > 2 && i % 2 == 0 && i + 1 < len) {``        ``output.Append(sbInputReverse[i]);``        ``output.Append(``" ,"``);``      ``}``      ``else` `{``        ``output.Append(sbInputReverse[i]);``      ``}``    ``}` `    ``// Reverse the output``    ``StringBuilder reverseOutput = ``new` `StringBuilder();` `    ``st1 = ``new` `string``(``      ``output.ToString().Reverse().ToArray());``    ``reverseOutput.Append(st1);` `    ``// 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"``;` `    ``Console.WriteLine(convert(input1));``    ``Console.WriteLine(convert(input2));``  ``}``}` `// This code is contributed by phasing17`

## Javascript

 ``

Output:

```12, 34, 56, 789
90, 05, 00, 00, 000```

Time Complexity: O(n2)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up