# Convert the number from International system to Indian system

Given a 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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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

Number Applying separators In words
1 1 One
10 10 Ten
100 100 One hundred
1000 1, 000 One thousand
10000 10, 000 Ten thousand
100000 100, 000 One hundred thousand
1000000 1, 000, 000 One million
10000000 10, 000, 000 Ten million
100000000 100, 000, 000 One hundred million
1000000000 1, 000, 000, 000 One billion

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

Number Applying separators In words
1 1 One
10 10 Ten
100 100 One hundred
1000 1, 000 One thousand
10000 10, 000 Ten thousand
100000 1, 00, 000 One lakh
1000000 10, 00, 000 Ten lakh
10000000 1, 00, 00, 000 One crore
100000000 10, 00, 00, 000 Ten crore
1000000000 100, 00, 00, 000 One hundred crore

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 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 `

Output:

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : offbeat