Convert number to words
Here given code implementation process.
// C program
// Convert number to words
#include <stdio.h>
#include <string.h>
/*
You can change exist currency by country
Example
// International System
const char *const currency[] = {"","","Hundred","Thousand","Ten Thousand", "Hundred Thousand","Million","Ten Million","Hundred Million","Billon" ,"Ten Billion","Hundred Billion","Trillions","Ten Trillions" , "Hundred Trillions","Quadrillion","Ten Quadrillion","Hundred Quadrillion","Quintillion","Ten Quintillion"}
*/
// Here mentioning indian currency
const char *const currency[] = {
"" , "" , "Hundred" , "Thousand" , "Ten Thousand" , "Lakh" , "Ten Lakh" , "Crore" , "Ten Crore" , "Arab" , "Ten Arab" , "Kharab" , "Ten Kharab" , "Neel" , "Ten Neel" , "Padma" , "Ten Padma" , "Shankh" , "Ten Shankh" , "Maha-Shankh"
};
// Define name of 0...19
const char *const simple_digit[] = {
"Zero" , "One" , "Two" , "Three" , "Four" , "Five" , "Six" , "Seven" , "Eight" , "Nine" , "Ten" , "Eleven" , "Twelve" , "Thirteen" , "Fourteen" , "Fifteen" , "Sixteen" , "Seventeen" , "Eighteen" , "Nineteen"
};
// Define name of 20,30,40,50,60,70,80,90
const char *const multiplex[] = {
"" , "" , "Twenty" , "Thirty" , "Forty" , "Fifty" , "Sity" , "Seventy" , "Eighty" , "Ninety"
};
void translate(char *num, int length, int start)
{
if (length > 0)
{
int ans = 0;
if (length == 1)
{
ans = num[start] - '0';
printf(" %s", simple_digit[ans]);
translate(num, length - 1, start + 1);
}
else if (length == 2)
{
if (num[start] == '0')
{
translate(num, length - 1, start + 1);
}
else
{
ans = num[start] - '0';
ans *= 10 + num[start + 1] - '0';
if (ans >= 10 && ans <= 19)
{
printf(" %s", simple_digit[ans]);
}
else
{
ans = num[start] - '0';
printf(" %s", multiplex[ans]);
translate(num, length - 1, start + 1);
}
}
}
}
}
void printWord(char *num, int length)
{
if (length == 1)
{
// When number is single digit
translate(num, 1, 0);
return;
}
int counter = 0;
int digits = length;
int status = 0;
while (counter < length && digits > 0)
{
if (num[counter] != '0')
{
// Tracker to find result
status = 1;
if (digits == 1)
{
// When work with single digit
translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else if (digits == 2)
{
// When work with two digit
translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
translate(num, 1, counter);
counter += 1;
digits -= 1;
printf(" %s", currency[digits]);
}
else
{
translate(num, 2, counter);
counter += 2;
digits -= 2;
printf(" %s", currency[digits]);
}
}
}
else
{
counter++;
digits--;
}
}
if (status == 0)
{
// When In case get the all zero
printf(" Zero ");
}
}
// Handles the request to print number words
void numToWords(char *num)
{
// Get the length
int length = strlen(num);
printf(" Given Number : [%s]\n", num);
if (length > 19)
{
printf(" Number Out of range \n");
return;
}
// We assuming that given number is valid number
// And it is positive
printWord(num, length);
printf("\n");
}
int main()
{
numToWords("123");
numToWords("12345678");
numToWords("8905463");
numToWords("100000000");
numToWords("1000100001");
numToWords("98815283");
numToWords("842321");
numToWords("5125235677842321");
numToWords("9999");
numToWords("86");
}
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
/*
Java Program
Convert number to words
*/
public class NumberToWords
{
/*
You can change exist currency by country
Example
// International System
const char * const currency[] = {"","","Hundred","Thousand","Ten Thousand", "Hundred Thousand","Million","Ten Million","Hundred Million","Billion" ,"Ten Billion","Hundred Billion","Trillions","Ten Trillions" , "Hundred Trillions","Quadrillion","Ten Quadrillion","Hundred Quadrillion","Quintillion","Ten Quintillion"}
*/
// Here mentioning indian currency
String[] currency = {
"" , "" , "Hundred" , "Thousand" , "Ten Thousand" , "Lakh" , "Ten Lakh" , "Crore" , "Ten Crore" , "Arab" , "Ten Arab" , "Kharab" , "Ten Kharab" , "Neel" , "Ten Neel" , "Padma" , "Ten Padma" , "Shankh" , "Ten Shankh" , "Maha-Shankh"
};
// Define name of 0...19
String[] simpleDigit = {
"Zero" , "One" , "Two" , "Three" , "Four" , "Five" , "Six" , "Seven" , "Eight" , "Nine" , "Ten" , "Eleven" , "Twelve" , "Thirteen" , "Fourteen" , "Fifteen" , "Sixteen" , "Seventeen" , "Eighteen" , "Nineteen"
};
// Define name of 20,30,40,50,60,70,80,90
String[] multiplex = {
"" , "" , "Twenty" , "Thirty" , "Forty" , "Fifty" , "Sity" , "Seventy" , "Eighty" , "Ninety"
};
public void translate(String num, int length, int start)
{
if (length > 0)
{
int ans = 0;
if (length == 1)
{
ans = num.charAt(start) - '0';
System.out.print(" " + simpleDigit[ans]);
translate(num, length - 1, start + 1);
}
else if (length == 2)
{
if (num.charAt(start) == '0')
{
translate(num, length - 1, start + 1);
}
else
{
ans = num.charAt(start) - '0';
ans *= 10 + num.charAt(start + 1) - '0';
if (ans >= 10 && ans <= 19)
{
System.out.print(" " + simpleDigit[ans]);
}
else
{
ans = num.charAt(start) - '0';
System.out.print(" " + multiplex[ans]);
translate(num, length - 1, start + 1);
}
}
}
}
}
public void printWord(String num, int length)
{
if (length == 1)
{
// When number is single digit
translate(num, 1, 0);
return;
}
int counter = 0;
int digits = length;
boolean status = false;
while (counter < length && digits > 0)
{
if (num.charAt(counter) != '0')
{
// Tracker to find result
status = true;
if (digits == 1)
{
// When work with single digit
translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else if (digits == 2)
{
// When work with two digit
translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
translate(num, 1, counter);
counter += 1;
digits -= 1;
System.out.print(" " + currency[digits]);
}
else
{
translate(num, 2, counter);
counter += 2;
digits -= 2;
System.out.print(" " + currency[digits]);
}
}
}
else
{
counter++;
digits--;
}
}
if (status == false)
{
// When In case get the all zero
System.out.print(" Zero ");
}
}
// Handles the request to print number words
public void words(String num)
{
// Get the length
int length = num.length();
System.out.print(" Given Number : [" + num + "]\n");
if (length > 19)
{
System.out.print(" Number Out of range \n");
return;
}
// We assuming that given number is valid number
// And it is positive
printWord(num, length);
System.out.print("\n");
}
public static void main(String args[])
{
NumberToWords task = new NumberToWords();
// Test Case
task.words("123");
task.words("12345678");
task.words("8905463");
task.words("100000000");
task.words("1000100001");
task.words("98815283");
task.words("842321");
task.words("5125235677842321");
task.words("9999");
task.words("86");
}
}
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
// Include header file
#include <iostream>
#include<string.h>
using namespace std;
/*
C++ Program
Convert number to words
*/
class NumberToWords
{
public:
/*
You can change exist currency by country
Example
// International System
const char *const currency[] = {"","","Hundred","Thousand","Ten Thousand", "Hundred Thousand","Million","Ten Million","Hundred Million","Billion" ,"Ten Billion","Hundred Billion","Trillions","Ten Trillions" , "Hundred Trillions","Quadrillion","Ten Quadrillion","Hundred Quadrillion","Quintillion","Ten Quintillion"}
*/
// Here mentioning indian currency
const char *const currency[20] = {
"" , "" , "Hundred" , "Thousand" , "Ten Thousand" , "Lakh" , "Ten Lakh" , "Crore" , "Ten Crore" , "Arab" , "Ten Arab" , "Kharab" , "Ten Kharab" , "Neel" , "Ten Neel" , "Padma" , "Ten Padma" , "Shankh" , "Ten Shankh" , "Maha-Shankh"
};
// Define name of 0...19
const char *const simpleDigit[20] = {
"Zero" , "One" , "Two" , "Three" , "Four" , "Five" , "Six" , "Seven" , "Eight" , "Nine" , "Ten" , "Eleven" , "Twelve" , "Thirteen" , "Fourteen" , "Fifteen" , "Sixteen" , "Seventeen" , "Eighteen" , "Nineteen"
};
// Define name of 20,30,40,50,60,70,80,90
const char *const multiplex[10] = {
"" , "" , "Twenty" , "Thirty" , "Forty" , "Fifty" , "Sity" , "Seventy" , "Eighty" , "Ninety"
};
void translate(string num, int length, int start)
{
if (length > 0)
{
int ans = 0;
if (length == 1)
{
ans = num[start] - '0';
cout << " " << this->simpleDigit[ans];
this->translate(num, length - 1, start + 1);
}
else if (length == 2)
{
if (num[start] == '0')
{
this->translate(num, length - 1, start + 1);
}
else
{
ans = num[start] - '0';
ans *= 10 + num[start + 1] - '0';
if (ans >= 10 && ans <= 19)
{
cout << " " << this->simpleDigit[ans];
}
else
{
ans = num[start] - '0';
cout << " " << this->multiplex[ans];
this->translate(num, length - 1, start + 1);
}
}
}
}
}
void printWord(string num, int length)
{
if (length == 1)
{
// When number is single digit
this->translate(num, 1, 0);
return;
}
int counter = 0;
int digits = length;
bool status = false;
while (counter < length && digits > 0)
{
if (num[counter] != '0')
{
// Tracker to find result
status = true;
if (digits == 1)
{
// When work with single digit
this->translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else if (digits == 2)
{
// When work with two digit
this->translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
this->translate(num, 1, counter);
counter += 1;
digits -= 1;
cout << " " << this->currency[digits];
}
else
{
this->translate(num, 2, counter);
counter += 2;
digits -= 2;
cout << " " << this->currency[digits];
}
}
}
else
{
counter++;
digits--;
}
}
if (status == false)
{
// When In case get the all zero
cout << " Zero ";
}
}
// Handles the request to print number words
void words(string num)
{
// Get the length
int length = num.size();
cout << " Given Number : [" << num << "]\n";
if (length > 19)
{
cout << " Number Out of range \n";
return;
}
// We assuming that given number is valid number
// And it is positive
this->printWord(num, length);
cout << "\n";
}
};
int main()
{
NumberToWords task = NumberToWords();
// Test Case
task.words("123");
task.words("12345678");
task.words("8905463");
task.words("100000000");
task.words("1000100001");
task.words("98815283");
task.words("842321");
task.words("5125235677842321");
task.words("9999");
task.words("86");
return 0;
}
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
// Include namespace system
using System;
/*
C# Program
Convert number to words
*/
public class NumberToWords
{
String[] currency;
String[] simpleDigit;
String[] multiplex;
public NumberToWords()
{
// Allocate memory
this.currency = new String[20];
this.simpleDigit = new String[20];
this.multiplex = new String[10];
this.getDefault();
}
private void getDefault()
{
// Define name of 20,30,40,50,60,70,80,90
multiplex[0] = "";
multiplex[1] = "";
multiplex[2] = "Twenty";
multiplex[3] = "Thirty";
multiplex[4] = "Forty";
multiplex[5] = "Fifty";
multiplex[6] = "Sity";
multiplex[7] = "Seventy";
multiplex[8] = "Eighty";
multiplex[9] = "Ninety";
// Define name of 0...19
simpleDigit[0] = "Zero";
simpleDigit[1] = "One";
simpleDigit[2] = "Two";
simpleDigit[3] = "Three";
simpleDigit[4] = "Four";
simpleDigit[5] = "Five";
simpleDigit[6] = "Six";
simpleDigit[7] = "Seven";
simpleDigit[8] = "Eight";
simpleDigit[9] = "Nine";
simpleDigit[10] = "Ten";
simpleDigit[11] = "Eleven";
simpleDigit[12] = "Twelve";
simpleDigit[13] = "Thirteen";
simpleDigit[14] = "Fourteen";
simpleDigit[15] = "Fifteen";
simpleDigit[16] = "Sixteen";
simpleDigit[17] = "Seventeen";
simpleDigit[18] = "Eighteen";
simpleDigit[19] = "Nineteen";
/*
You can change exist currency by country
Example
// International System
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Hundred Thousand";
currency[6] = "Million";
currency[7] = "Ten Million";
currency[8] = "Hundred Million";
currency[9] = "Billion";
currency[10] = "Ten Billion";
currency[11] = "Hundred Billion";
currency[12] = "Trillion";
currency[13] = "Ten Trillion ";
currency[14] = "Hundred Trillion";
currency[15] = "Quadrillion";
currency[16] = "Ten Quadrillion";
currency[17] = "Hundred Quadrillion";
currency[18] = "Quintillion";
currency[19] = "Ten Quintillion";
*/
// Here mentioning india currency
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Lakh";
currency[6] = "Ten Lakh";
currency[7] = "Crore";
currency[8] = "Ten Crore";
currency[9] = "Arab";
currency[10] = "Ten Arab";
currency[11] = "Kharab";
currency[12] = "Ten Kharab";
currency[13] = "Neel";
currency[14] = "Ten Neel";
currency[15] = "Padma";
currency[16] = "Ten Padma";
currency[17] = "Shankh";
currency[18] = "Ten Shankh";
currency[19] = "Maha-Shankh";
}
public void translate(String num, int length, int start)
{
if (length > 0)
{
int ans = 0;
if (length == 1)
{
ans = num[start] - '0';
Console.Write(" " + simpleDigit[ans]);
translate(num, length - 1, start + 1);
}
else if (length == 2)
{
if (num[start] == '0')
{
translate(num, length - 1, start + 1);
}
else
{
ans = num[start] - '0';
ans *= 10 + num[start + 1] - '0';
if (ans >= 10 && ans <= 19)
{
Console.Write(" " + simpleDigit[ans]);
}
else
{
ans = num[start] - '0';
Console.Write(" " + multiplex[ans]);
translate(num, length - 1, start + 1);
}
}
}
}
}
public void printWord(String num, int length)
{
if (length == 1)
{
// When number is single digit
translate(num, 1, 0);
return;
}
int counter = 0;
int digits = length;
Boolean status = false;
while (counter < length && digits > 0)
{
if (num[counter] != '0')
{
// Tracker to find result
status = true;
if (digits == 1)
{
// When work with single digit
translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else if (digits == 2)
{
// When work with two digit
translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
translate(num, 1, counter);
counter += 1;
digits -= 1;
Console.Write(" " + currency[digits]);
}
else
{
translate(num, 2, counter);
counter += 2;
digits -= 2;
Console.Write(" " + currency[digits]);
}
}
}
else
{
counter++;
digits--;
}
}
if (status == false)
{
// When In case get the all zero
Console.Write(" Zero ");
}
}
// Handles the request to print number words
public void words(String num)
{
// Get the length
int length = num.Length;
Console.Write(" Given Number : [" + num + "]\n");
if (length > 19)
{
Console.Write(" Number Out of range \n");
return;
}
// We assuming that given number is valid number
// And it is positive
printWord(num, length);
Console.Write("\n");
}
public static void Main(String []args)
{
NumberToWords task = new NumberToWords();
// Test Case
task.words("123");
task.words("12345678");
task.words("8905463");
task.words("100000000");
task.words("1000100001");
task.words("98815283");
task.words("842321");
task.words("5125235677842321");
task.words("9999");
task.words("86");
}
}
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
<?php
/*
Php Program
Convert number to words
*/
class NumberToWords
{
public $currency;
public $simpleDigit;
public $multiplex;
function __construct()
{
// Allocate memory
$this->currency = array_fill(0, 20, "");
$this->simpleDigit = array_fill(0, 20, "");
$this->multiplex = array_fill(0, 10, "");
$this->getDefault();
}
private
function getDefault()
{
// Define name of 20,30,40,50,60,70,80,90
$this->multiplex[0] = "";
$this->multiplex[1] = "";
$this->multiplex[2] = "Twenty";
$this->multiplex[3] = "Thirty";
$this->multiplex[4] = "Forty";
$this->multiplex[5] = "Fifty";
$this->multiplex[6] = "Sity";
$this->multiplex[7] = "Seventy";
$this->multiplex[8] = "Eighty";
$this->multiplex[9] = "Ninety";
// Define name of 0...19
$this->simpleDigit[0] = "Zero";
$this->simpleDigit[1] = "One";
$this->simpleDigit[2] = "Two";
$this->simpleDigit[3] = "Three";
$this->simpleDigit[4] = "Four";
$this->simpleDigit[5] = "Five";
$this->simpleDigit[6] = "Six";
$this->simpleDigit[7] = "Seven";
$this->simpleDigit[8] = "Eight";
$this->simpleDigit[9] = "Nine";
$this->simpleDigit[10] = "Ten";
$this->simpleDigit[11] = "Eleven";
$this->simpleDigit[12] = "Twelve";
$this->simpleDigit[13] = "Thirteen";
$this->simpleDigit[14] = "Fourteen";
$this->simpleDigit[15] = "Fifteen";
$this->simpleDigit[16] = "Sixteen";
$this->simpleDigit[17] = "Seventeen";
$this->simpleDigit[18] = "Eighteen";
$this->simpleDigit[19] = "Nineteen";
/*
You can change exist currency by country
Example
// International System
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Hundred Thousand";
currency[6] = "Million";
currency[7] = "Ten Million";
currency[8] = "Hundred Million";
currency[9] = "Billion";
currency[10] = "Ten Billion";
currency[11] = "Hundred Billion";
currency[12] = "Trillion";
currency[13] = "Ten Trillion ";
currency[14] = "Hundred Trillion";
currency[15] = "Quadrillion";
currency[16] = "Ten Quadrillion";
currency[17] = "Hundred Quadrillion";
currency[18] = "Quintillion";
currency[19] = "Ten Quintillion";
*/
// Here mentioning indian currency
$this->currency[0] = "";
$this->currency[1] = "";
$this->currency[2] = "Hundred";
$this->currency[3] = "Thousand";
$this->currency[4] = "Ten Thousand";
$this->currency[5] = "Lakh";
$this->currency[6] = "Ten Lakh";
$this->currency[7] = "Crore";
$this->currency[8] = "Ten Crore";
$this->currency[9] = "Arab";
$this->currency[10] = "Ten Arab";
$this->currency[11] = "Kharab";
$this->currency[12] = "Ten Kharab";
$this->currency[13] = "Neel";
$this->currency[14] = "Ten Neel";
$this->currency[15] = "Padma";
$this->currency[16] = "Ten Padma";
$this->currency[17] = "Shankh";
$this->currency[18] = "Ten Shankh";
$this->currency[19] = "Maha-Shankh";
}
public function translate($num, $length, $start)
{
if ($length > 0)
{
$ans = 0;
if ($length == 1)
{
$ans = ord($num[$start]) - ord('0');
echo " ". $this->simpleDigit[$ans];
$this->translate($num, $length - 1, $start + 1);
}
else if ($length == 2)
{
if ($num[$start] == '0')
{
$this->translate($num, $length - 1, $start + 1);
}
else
{
$ans = ord($num[$start]) - ord('0');
$ans *= 10 + $num[$start + 1] - ord('0');
if ($ans >= 10 && $ans <= 19)
{
echo " ". $this->simpleDigit[$ans];
}
else
{
$ans = ord($num[$start]) - ord('0');
echo " ". $this->multiplex[$ans];
$this->translate($num, $length - 1, $start + 1);
}
}
}
}
}
public function printWord($num, $length)
{
if ($length == 1)
{
// When number is single digit
$this->translate($num, 1, 0);
return;
}
$counter = 0;
$digits = $length;
$status = false;
while ($counter < $length && $digits > 0)
{
if ($num[$counter] != '0')
{
// Tracker to find result
$status = true;
if ($digits == 1)
{
// When work with single digit
$this->translate($num, 1, $counter);
$counter += 1;
$digits -= 1;
}
else if ($digits == 2)
{
// When work with two digit
$this->translate($num, 2, $counter);
$counter += 2;
$digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if ($digits == 3 || $digits % 2 == 0)
{
// When work with single digit
$this->translate($num, 1, $counter);
$counter += 1;
$digits -= 1;
echo " ". $this->currency[$digits];
}
else
{
$this->translate($num, 2, $counter);
$counter += 2;
$digits -= 2;
echo " ". $this->currency[$digits];
}
}
}
else
{
$counter++;
$digits--;
}
}
if ($status == false)
{
// When In case get the all zero
echo " Zero ";
}
}
// Handles the request to print number words
public function words($num)
{
// Get the length
$length = strlen($num);
echo " Given Number : [". $num ."]\n";
if ($length > 19)
{
echo " Number Out of range \n";
return;
}
// We assuming that given number is valid number
// And it is positive
$this->printWord($num, $length);
echo "\n";
}
}
function main()
{
$task = new NumberToWords();
// Test Case
$task->words("123");
$task->words("12345678");
$task->words("8905463");
$task->words("100000000");
$task->words("1000100001");
$task->words("98815283");
$task->words("842321");
$task->words("5125235677842321");
$task->words("9999");
$task->words("86");
}
main();
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Zero Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Five Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Two Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
/*
Node Js Program
Convert number to words
*/
class NumberToWords
{
constructor()
{
// Allocate memory
this.currency = Array(20).fill("");
this.simpleDigit = Array(20).fill("");
this.multiplex = Array(10).fill("");
this.getDefault();
}
getDefault()
{
// Define name of 20,30,40,50,60,70,80,90
this.multiplex[0] = "";
this.multiplex[1] = "";
this.multiplex[2] = "Twenty";
this.multiplex[3] = "Thirty";
this.multiplex[4] = "Forty";
this.multiplex[5] = "Fifty";
this.multiplex[6] = "Sity";
this.multiplex[7] = "Seventy";
this.multiplex[8] = "Eighty";
this.multiplex[9] = "Ninety";
// Define name of 0...19
this.simpleDigit[0] = "Zero";
this.simpleDigit[1] = "One";
this.simpleDigit[2] = "Two";
this.simpleDigit[3] = "Three";
this.simpleDigit[4] = "Four";
this.simpleDigit[5] = "Five";
this.simpleDigit[6] = "Six";
this.simpleDigit[7] = "Seven";
this.simpleDigit[8] = "Eight";
this.simpleDigit[9] = "Nine";
this.simpleDigit[10] = "Ten";
this.simpleDigit[11] = "Eleven";
this.simpleDigit[12] = "Twelve";
this.simpleDigit[13] = "Thirteen";
this.simpleDigit[14] = "Fourteen";
this.simpleDigit[15] = "Fifteen";
this.simpleDigit[16] = "Sixteen";
this.simpleDigit[17] = "Seventeen";
this.simpleDigit[18] = "Eighteen";
this.simpleDigit[19] = "Nineteen";
/*
You can change exist currency by country
Example
// International System
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Hundred Thousand";
currency[6] = "Million";
currency[7] = "Ten Million";
currency[8] = "Hundred Million";
currency[9] = "Billion";
currency[10] = "Ten Billion";
currency[11] = "Hundred Billion";
currency[12] = "Trillion";
currency[13] = "Ten Trillion ";
currency[14] = "Hundred Trillion";
currency[15] = "Quadrillion";
currency[16] = "Ten Quadrillion";
currency[17] = "Hundred Quadrillion";
currency[18] = "Quintillion";
currency[19] = "Ten Quintillion";
*/
// Here mentioning indian currency
this.currency[0] = "";
this.currency[1] = "";
this.currency[2] = "Hundred";
this.currency[3] = "Thousand";
this.currency[4] = "Ten Thousand";
this.currency[5] = "Lakh";
this.currency[6] = "Ten Lakh";
this.currency[7] = "Crore";
this.currency[8] = "Ten Crore";
this.currency[9] = "Arab";
this.currency[10] = "Ten Arab";
this.currency[11] = "Kharab";
this.currency[12] = "Ten Kharab";
this.currency[13] = "Neel";
this.currency[14] = "Ten Neel";
this.currency[15] = "Padma";
this.currency[16] = "Ten Padma";
this.currency[17] = "Shankh";
this.currency[18] = "Ten Shankh";
this.currency[19] = "Maha-Shankh";
}
translate(num, length, start)
{
if (length > 0)
{
var ans = 0;
if (length == 1)
{
ans = (num[start]).charCodeAt(0) - ('0').charCodeAt(0);
process.stdout.write(" " + this.simpleDigit[ans]);
this.translate(num, length - 1, start + 1);
}
else if (length == 2)
{
if (num[start] == '0')
{
this.translate(num, length - 1, start + 1);
}
else
{
ans = (num[start]).charCodeAt(0) - ('0').charCodeAt(0);
ans *= 10 + num[start + 1] - ('0').charCodeAt(0);
if (ans >= 10 && ans <= 19)
{
process.stdout.write(" " + this.simpleDigit[ans]);
}
else
{
ans = (num[start]).charCodeAt(0) - ('0').charCodeAt(0);
process.stdout.write(" " + this.multiplex[ans]);
this.translate(num, length - 1, start + 1);
}
}
}
}
}
printWord(num, length)
{
if (length == 1)
{
// When number is single digit
this.translate(num, 1, 0);
return;
}
var counter = 0;
var digits = length;
var status = false;
while (counter < length && digits > 0)
{
if (num[counter] != '0')
{
// Tracker to find result
status = true;
if (digits == 1)
{
// When work with single digit
this.translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else if (digits == 2)
{
// When work with two digit
this.translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
this.translate(num, 1, counter);
counter += 1;
digits -= 1;
process.stdout.write(" " + this.currency[digits]);
}
else
{
this.translate(num, 2, counter);
counter += 2;
digits -= 2;
process.stdout.write(" " + this.currency[digits]);
}
}
}
else
{
counter++;
digits--;
}
}
if (status == false)
{
// When In case get the all zero
process.stdout.write(" Zero ");
}
}
// Handles the request to print number words
words(num)
{
// Get the length
var length = num.length;
process.stdout.write(" Given Number : [" + num + "]\n");
if (length > 19)
{
process.stdout.write(" Number Out of range \n");
return;
}
// We assuming that given number is valid number
// And it is positive
this.printWord(num, length);
process.stdout.write("\n");
}
}
function main()
{
var task = new NumberToWords();
// Test Case
task.words("123");
task.words("12345678");
task.words("8905463");
task.words("100000000");
task.words("1000100001");
task.words("98815283");
task.words("842321");
task.words("5125235677842321");
task.words("9999");
task.words("86");
}
main();
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Zero Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Five Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Two Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
# Python 3 Program
# Convert number to words
class NumberToWords :
def __init__(self) :
# Allocate memory
self.currency = [""] * (20)
self.simpleDigit = [""] * (20)
self.multiplex = [""] * (10)
self.getDefault()
def getDefault(self) :
# Define name of 20,30,40,50,60,70,80,90
self.multiplex[0] = ""
self.multiplex[1] = ""
self.multiplex[2] = "Twenty"
self.multiplex[3] = "Thirty"
self.multiplex[4] = "Forty"
self.multiplex[5] = "Fifty"
self.multiplex[6] = "Sity"
self.multiplex[7] = "Seventy"
self.multiplex[8] = "Eighty"
self.multiplex[9] = "Ninety"
# Define name of 0...19
self.simpleDigit[0] = "Zero"
self.simpleDigit[1] = "One"
self.simpleDigit[2] = "Two"
self.simpleDigit[3] = "Three"
self.simpleDigit[4] = "Four"
self.simpleDigit[5] = "Five"
self.simpleDigit[6] = "Six"
self.simpleDigit[7] = "Seven"
self.simpleDigit[8] = "Eight"
self.simpleDigit[9] = "Nine"
self.simpleDigit[10] = "Ten"
self.simpleDigit[11] = "Eleven"
self.simpleDigit[12] = "Twelve"
self.simpleDigit[13] = "Thirteen"
self.simpleDigit[14] = "Fourteen"
self.simpleDigit[15] = "Fifteen"
self.simpleDigit[16] = "Sixteen"
self.simpleDigit[17] = "Seventeen"
self.simpleDigit[18] = "Eighteen"
self.simpleDigit[19] = "Nineteen"
#
# You can change exist currency by country
# Example
# // International System
# currency[0] = ""
# currency[1] = ""
# currency[2] = "Hundred"
# currency[3] = "Thousand"
# currency[4] = "Ten Thousand"
# currency[5] = "Hundred Thousand"
# currency[6] = "Million"
# currency[7] = "Ten Million"
# currency[8] = "Hundred Million"
# currency[9] = "Billion"
# currency[10] = "Ten Billion"
# currency[11] = "Hundred Billion"
# currency[12] = "Trillion"
# currency[13] = "Ten Trillion "
# currency[14] = "Hundred Trillion"
# currency[15] = "Quadrillion"
# currency[16] = "Ten Quadrillion"
# currency[17] = "Hundred Quadrillion"
# currency[18] = "Quintillion"
# currency[19] = "Ten Quintillion"
#
# Here mentioning indian currency
self.currency[0] = ""
self.currency[1] = ""
self.currency[2] = "Hundred"
self.currency[3] = "Thousand"
self.currency[4] = "Ten Thousand"
self.currency[5] = "Lakh"
self.currency[6] = "Ten Lakh"
self.currency[7] = "Crore"
self.currency[8] = "Ten Crore"
self.currency[9] = "Arab"
self.currency[10] = "Ten Arab"
self.currency[11] = "Kharab"
self.currency[12] = "Ten Kharab"
self.currency[13] = "Neel"
self.currency[14] = "Ten Neel"
self.currency[15] = "Padma"
self.currency[16] = "Ten Padma"
self.currency[17] = "Shankh"
self.currency[18] = "Ten Shankh"
self.currency[19] = "Maha-Shankh"
def translate(self, num, length, start) :
if (length > 0) :
ans = 0
if (length == 1) :
ans = ord(num[start]) - ord('0')
print("", self.simpleDigit[ans], end = "")
self.translate(num, length - 1, start + 1)
elif(length == 2) :
if (num[start] == '0') :
self.translate(num, length - 1, start + 1)
else :
ans = ord(num[start]) - ord('0')
ans *= 10 + ord(num[start + 1]) - ord('0')
if (ans >= 10 and ans <= 19) :
print("", self.simpleDigit[ans], end = "")
else :
ans = ord(num[start]) - ord('0')
print("", self.multiplex[ans], end = "")
self.translate(num, length - 1, start + 1)
def printWord(self, num, length) :
if (length == 1) :
# When number is single digit
self.translate(num, 1, 0)
return
counter = 0
digits = length
status = False
while (counter < length and digits > 0) :
if (num[counter] != '0') :
# Tracker to find result
status = True
if (digits == 1) :
# When work with single digit
self.translate(num, 1, counter)
counter += 1
digits -= 1
elif(digits == 2) :
# When work with two digit
self.translate(num, 2, counter)
counter += 2
digits -= 2
else :
# When number digit length more than 2
# Case A
if (digits == 3 or digits % 2 == 0) :
# When work with single digit
self.translate(num, 1, counter)
counter += 1
digits -= 1
print("", self.currency[digits], end = "")
else :
self.translate(num, 2, counter)
counter += 2
digits -= 2
print("", self.currency[digits], end = "")
else :
counter += 1
digits -= 1
if (status == False) :
# When In case get the all zero
print(" Zero ", end = "")
# Handles the request to print number words
def words(self, num) :
# Get the length
length = len(num)
print(" Given Number : [{0}]".format(num))
if (length > 19) :
print(" Number Out of range ")
return
# We assuming that given number is valid number
# And it is positive
self.printWord(num, length)
print(end = "\n")
def main() :
task = NumberToWords()
# Test Case
task.words("123")
task.words("12345678")
task.words("8905463")
task.words("100000000")
task.words("1000100001")
task.words("98815283")
task.words("842321")
task.words("5125235677842321")
task.words("9999")
task.words("86")
if __name__ == "__main__": main()
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
# Ruby Program
# Convert number to words
class NumberToWords
# Define the accessor and reader of class NumberToWords
attr_reader :currency, :simpleDigit, :multiplex
attr_accessor :currency, :simpleDigit, :multiplex
def initialize()
# Allocate memory
self.currency = Array.new(20) {""}
self.simpleDigit = Array.new(20) {""}
self.multiplex = Array.new(10) {""}
self.getDefault()
end
def getDefault()
# Define name of 20,30,40,50,60,70,80,90
multiplex[0] = ""
multiplex[1] = ""
multiplex[2] = "Twenty"
multiplex[3] = "Thirty"
multiplex[4] = "Forty"
multiplex[5] = "Fifty"
multiplex[6] = "Sity"
multiplex[7] = "Seventy"
multiplex[8] = "Eighty"
multiplex[9] = "Ninety"
# Define name of 0...19
simpleDigit[0] = "Zero"
simpleDigit[1] = "One"
simpleDigit[2] = "Two"
simpleDigit[3] = "Three"
simpleDigit[4] = "Four"
simpleDigit[5] = "Five"
simpleDigit[6] = "Six"
simpleDigit[7] = "Seven"
simpleDigit[8] = "Eight"
simpleDigit[9] = "Nine"
simpleDigit[10] = "Ten"
simpleDigit[11] = "Eleven"
simpleDigit[12] = "Twelve"
simpleDigit[13] = "Thirteen"
simpleDigit[14] = "Fourteen"
simpleDigit[15] = "Fifteen"
simpleDigit[16] = "Sixteen"
simpleDigit[17] = "Seventeen"
simpleDigit[18] = "Eighteen"
simpleDigit[19] = "Nineteen"
#
# You can change exist currency by country
# Example
# // International System
# currency[0] = ""
# currency[1] = ""
# currency[2] = "Hundred"
# currency[3] = "Thousand"
# currency[4] = "Ten Thousand"
# currency[5] = "Hundred Thousand"
# currency[6] = "Million"
# currency[7] = "Ten Million"
# currency[8] = "Hundred Million"
# currency[9] = "Billion"
# currency[10] = "Ten Billion"
# currency[11] = "Hundred Billion"
# currency[12] = "Trillion"
# currency[13] = "Ten Trillion "
# currency[14] = "Hundred Trillion"
# currency[15] = "Quadrillion"
# currency[16] = "Ten Quadrillion"
# currency[17] = "Hundred Quadrillion"
# currency[18] = "Quintillion"
# currency[19] = "Ten Quintillion"
#
# Here mentioning indian currency
currency[0] = ""
currency[1] = ""
currency[2] = "Hundred"
currency[3] = "Thousand"
currency[4] = "Ten Thousand"
currency[5] = "Lakh"
currency[6] = "Ten Lakh"
currency[7] = "Crore"
currency[8] = "Ten Crore"
currency[9] = "Arab"
currency[10] = "Ten Arab"
currency[11] = "Kharab"
currency[12] = "Ten Kharab"
currency[13] = "Neel"
currency[14] = "Ten Neel"
currency[15] = "Padma"
currency[16] = "Ten Padma"
currency[17] = "Shankh"
currency[18] = "Ten Shankh"
currency[19] = "Maha-Shankh"
end
def translate(num, length, start)
if (length > 0)
ans = 0
if (length == 1)
ans = (num[start]).ord - ('0').ord
print(" ", simpleDigit[ans])
self.translate(num, length - 1, start + 1)
elsif(length == 2)
if (num[start] == '0')
self.translate(num, length - 1, start + 1)
else
ans = (num[start]).ord - ('0').ord
ans *= 10 + (num[start + 1]).ord - ('0').ord
if (ans >= 10 && ans <= 19)
print(" ", simpleDigit[ans])
else
ans = (num[start]).ord - ('0').ord
print(" ", multiplex[ans])
self.translate(num, length - 1, start + 1)
end
end
end
end
end
def printWord(num, length)
if (length == 1)
# When number is single digit
self.translate(num, 1, 0)
return
end
counter = 0
digits = length
status = false
while (counter < length && digits > 0)
if (num[counter] != '0')
# Tracker to find result
status = true
if (digits == 1)
# When work with single digit
self.translate(num, 1, counter)
counter += 1
digits -= 1
elsif(digits == 2)
# When work with two digit
self.translate(num, 2, counter)
counter += 2
digits -= 2
else
# When number digit length more than 2
# Case A
if (digits == 3 || digits % 2 == 0)
# When work with single digit
self.translate(num, 1, counter)
counter += 1
digits -= 1
print(" ", currency[digits])
else
self.translate(num, 2, counter)
counter += 2
digits -= 2
print(" ", currency[digits])
end
end
else
counter += 1
digits -= 1
end
end
if (status == false)
# When In case get the all zero
print(" Zero ")
end
end
# Handles the request to print number words
def words(num)
# Get the length
length = num.length()
print(" Given Number : [", num ,"]\n")
if (length > 19)
print(" Number Out of range \n")
return
end
# We assuming that given number is valid number
# And it is positive
self.printWord(num, length)
print("\n")
end
end
def main()
task = NumberToWords.new()
# Test Case
task.words("123")
task.words("12345678")
task.words("8905463")
task.words("100000000")
task.words("1000100001")
task.words("98815283")
task.words("842321")
task.words("5125235677842321")
task.words("9999")
task.words("86")
end
main()
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
/*
Scala Program
Convert number to words
*/
class NumberToWords(var currency: Array[String] , var simpleDigit: Array[String] , var multiplex: Array[String])
{
def this()
{
this(Array.fill[String](20)(""), Array.fill[String](20)(""), Array.fill[String](10)(""));
this.getDefault();
}
def getDefault(): Unit = {
// Define name of 20,30,40,50,60,70,80,90
multiplex(0) = "";
multiplex(1) = "";
multiplex(2) = "Twenty";
multiplex(3) = "Thirty";
multiplex(4) = "Forty";
multiplex(5) = "Fifty";
multiplex(6) = "Sity";
multiplex(7) = "Seventy";
multiplex(8) = "Eighty";
multiplex(9) = "Ninety";
// Define name of 0...19
simpleDigit(0) = "Zero";
simpleDigit(1) = "One";
simpleDigit(2) = "Two";
simpleDigit(3) = "Three";
simpleDigit(4) = "Four";
simpleDigit(5) = "Five";
simpleDigit(6) = "Six";
simpleDigit(7) = "Seven";
simpleDigit(8) = "Eight";
simpleDigit(9) = "Nine";
simpleDigit(10) = "Ten";
simpleDigit(11) = "Eleven";
simpleDigit(12) = "Twelve";
simpleDigit(13) = "Thirteen";
simpleDigit(14) = "Fourteen";
simpleDigit(15) = "Fifteen";
simpleDigit(16) = "Sixteen";
simpleDigit(17) = "Seventeen";
simpleDigit(18) = "Eighteen";
simpleDigit(19) = "Nineteen";
/*
You can change exist currency by country
Example
// International System
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Hundred Thousand";
currency[6] = "Million";
currency[7] = "Ten Million";
currency[8] = "Hundred Million";
currency[9] = "Billion";
currency[10] = "Ten Billion";
currency[11] = "Hundred Billion";
currency[12] = "Trillion";
currency[13] = "Ten Trillion ";
currency[14] = "Hundred Trillion";
currency[15] = "Quadrillion";
currency[16] = "Ten Quadrillion";
currency[17] = "Hundred Quadrillion";
currency[18] = "Quintillion";
currency[19] = "Ten Quintillion";
*/
// Here mentioning indian currency
currency(0) = "";
currency(1) = "";
currency(2) = "Hundred";
currency(3) = "Thousand";
currency(4) = "Ten Thousand";
currency(5) = "Lakh";
currency(6) = "Ten Lakh";
currency(7) = "Crore";
currency(8) = "Ten Crore";
currency(9) = "Arab";
currency(10) = "Ten Arab";
currency(11) = "Kharab";
currency(12) = "Ten Kharab";
currency(13) = "Neel";
currency(14) = "Ten Neel";
currency(15) = "Padma";
currency(16) = "Ten Padma";
currency(17) = "Shankh";
currency(18) = "Ten Shankh";
currency(19) = "Maha-Shankh";
}
def translate(num: String, length: Int, start: Int): Unit = {
if (length > 0)
{
var ans: Int = 0;
if (length == 1)
{
ans = num(start) - '0';
print(" " + simpleDigit(ans));
this.translate(num, length - 1, start + 1);
}
else if (length == 2)
{
if (num(start) == '0')
{
this.translate(num, length - 1, start + 1);
}
else
{
ans = num(start) - '0';
ans *= 10 + num(start + 1) - '0';
if (ans >= 10 && ans <= 19)
{
print(" " + simpleDigit(ans));
}
else
{
ans = num(start) - '0';
print(" " + multiplex(ans));
this.translate(num, length - 1, start + 1);
}
}
}
}
}
def printWord(num: String, length: Int): Unit = {
if (length == 1)
{
// When number is single digit
this.translate(num, 1, 0);
return;
}
var counter: Int = 0;
var digits: Int = length;
var status: Boolean = false;
while (counter < length && digits > 0)
{
if (num(counter) != '0')
{
// Tracker to find result
status = true;
if (digits == 1)
{
// When work with single digit
this.translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else if (digits == 2)
{
// When work with two digit
this.translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
this.translate(num, 1, counter);
counter += 1;
digits -= 1;
print(" " + currency(digits));
}
else
{
this.translate(num, 2, counter);
counter += 2;
digits -= 2;
print(" " + currency(digits));
}
}
}
else
{
counter += 1;
digits -= 1;
}
}
if (status == false)
{
// When In case get the all zero
print(" Zero ");
}
}
// Handles the request to print number words
def words(num: String): Unit = {
// Get the length
var length: Int = num.length();
print(" Given Number : [" + num + "]\n");
if (length > 19)
{
print(" Number Out of range \n");
return;
}
// We assuming that given number is valid number
// And it is positive
this.printWord(num, length);
print("\n");
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: NumberToWords = new NumberToWords();
// Test Case
task.words("123");
task.words("12345678");
task.words("8905463");
task.words("100000000");
task.words("1000100001");
task.words("98815283");
task.words("842321");
task.words("5125235677842321");
task.words("9999");
task.words("86");
}
}
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
/*
Swift 4 Program
Convert number to words
*/
class NumberToWords
{
var currency: [String];
var simpleDigit: [String];
var multiplex: [String];
init()
{
// Allocate memory
self.currency = Array(repeating: "", count: 20);
self.simpleDigit = Array(repeating: "", count: 20);
self.multiplex = Array(repeating: "", count: 10);
self.getDefault();
}
func getDefault()
{
// Define name of 20,30,40,50,60,70,80,90
self.multiplex[0] = "";
self.multiplex[1] = "";
self.multiplex[2] = "Twenty";
self.multiplex[3] = "Thirty";
self.multiplex[4] = "Forty";
self.multiplex[5] = "Fifty";
self.multiplex[6] = "Sity";
self.multiplex[7] = "Seventy";
self.multiplex[8] = "Eighty";
self.multiplex[9] = "Ninety";
// Define name of 0...19
self.simpleDigit[0] = "Zero";
self.simpleDigit[1] = "One";
self.simpleDigit[2] = "Two";
self.simpleDigit[3] = "Three";
self.simpleDigit[4] = "Four";
self.simpleDigit[5] = "Five";
self.simpleDigit[6] = "Six";
self.simpleDigit[7] = "Seven";
self.simpleDigit[8] = "Eight";
self.simpleDigit[9] = "Nine";
self.simpleDigit[10] = "Ten";
self.simpleDigit[11] = "Eleven";
self.simpleDigit[12] = "Twelve";
self.simpleDigit[13] = "Thirteen";
self.simpleDigit[14] = "Fourteen";
self.simpleDigit[15] = "Fifteen";
self.simpleDigit[16] = "Sixteen";
self.simpleDigit[17] = "Seventeen";
self.simpleDigit[18] = "Eighteen";
self.simpleDigit[19] = "Nineteen";
/*
You can change exist currency by country
Example
// International System
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Hundred Thousand";
currency[6] = "Million";
currency[7] = "Ten Million";
currency[8] = "Hundred Million";
currency[9] = "Billion";
currency[10] = "Ten Billion";
currency[11] = "Hundred Billion";
currency[12] = "Trillion";
currency[13] = "Ten Trillion ";
currency[14] = "Hundred Trillion";
currency[15] = "Quadrillion";
currency[16] = "Ten Quadrillion";
currency[17] = "Hundred Quadrillion";
currency[18] = "Quintillion";
currency[19] = "Ten Quintillion";
*/
// Here mentioning indian currency
self.currency[0] = "";
self.currency[1] = "";
self.currency[2] = "Hundred";
self.currency[3] = "Thousand";
self.currency[4] = "Ten Thousand";
self.currency[5] = "Lakh";
self.currency[6] = "Ten Lakh";
self.currency[7] = "Crore";
self.currency[8] = "Ten Crore";
self.currency[9] = "Arab";
self.currency[10] = "Ten Arab";
self.currency[11] = "Kharab";
self.currency[12] = "Ten Kharab";
self.currency[13] = "Neel";
self.currency[14] = "Ten Neel";
self.currency[15] = "Padma";
self.currency[16] = "Ten Padma";
self.currency[17] = "Shankh";
self.currency[18] = "Ten Shankh";
self.currency[19] = "Maha-Shankh";
}
func translate(_ num: [Character], _ length: Int, _ start: Int)
{
if (length > 0)
{
var ans: Int = 0;
if (length == 1)
{
ans = Int(UnicodeScalar(String(num[start]))!.value) - 48;
print(" ", self.simpleDigit[ans], terminator: "");
self.translate(num, length - 1, start + 1);
}
else if (length == 2)
{
if (num[start] == "0")
{
self.translate(num, length - 1, start + 1);
}
else
{
ans = Int(UnicodeScalar(String(num[start]))!.value) - 48;
ans *= 10 + Int(UnicodeScalar(String(num[start + 1]))!.value) - 48;
if (ans >= 10 && ans <= 19)
{
print("", self.simpleDigit[ans], terminator: "");
}
else
{
ans = Int(UnicodeScalar(String(num[start]))!.value) - 48;
print("", self.multiplex[ans], terminator: "");
self.translate(num, length - 1, start + 1);
}
}
}
}
}
func printWord(_ num: [Character], _ length: Int)
{
if (length == 1)
{
// When number is single digit
self.translate(num, 1, 0);
return;
}
var counter: Int = 0;
var digits: Int = length;
var status: Bool = false;
while (counter < length && digits > 0)
{
if (num[counter] != "0")
{
// Tracker to find result
status = true;
if (digits == 1)
{
// When work with single digit
self.translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else if (digits == 2)
{
// When work with two digit
self.translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
self.translate(num, 1, counter);
counter += 1;
digits -= 1;
print("", self.currency[digits], terminator: "");
}
else
{
self.translate(num, 2, counter);
counter += 2;
digits -= 2;
print("", self.currency[digits], terminator: "");
}
}
}
else
{
counter += 1;
digits -= 1;
}
}
if (status == false)
{
// When In case get the all zero
print(" Zero ", terminator: "");
}
}
// Handles the request to print number words
func words(_ num: String)
{
// Get the length
let length: Int = num.count;
print(" Given Number : [", num ,"]");
if (length > 19)
{
print(" Number Out of range ");
return;
}
// We assuming that given number is valid number
// And it is positive
self.printWord(Array(num), length);
print(terminator: "\n");
}
}
func main()
{
let task: NumberToWords = NumberToWords();
// Test Case
task.words("123");
task.words("12345678");
task.words("8905463");
task.words("100000000");
task.words("1000100001");
task.words("98815283");
task.words("842321");
task.words("5125235677842321");
task.words("9999");
task.words("86");
}
main();
Output
Given Number : [ 123 ]
One Hundred Twenty Three
Given Number : [ 12345678 ]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [ 8905463 ]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [ 100000000 ]
Ten Crore
Given Number : [ 1000100001 ]
One Arab One Lakh One
Given Number : [ 98815283 ]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [ 842321 ]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [ 5125235677842321 ]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [ 9999 ]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [ 86 ]
Eighty Six
/*
Kotlin Program
Convert number to words
*/
class NumberToWords
{
var currency: Array<String>;
var simpleDigit: Array<String>;
var multiplex: Array<String>;
constructor()
{
// Allocate memory
this.currency = Array(20){""};
this.simpleDigit = Array(20){""};
this.multiplex = Array(10){""};
this.getDefault();
}
fun getDefault(): Unit
{
// Define name of 20,30,40,50,60,70,80,90
multiplex[0] = "";
multiplex[1] = "";
multiplex[2] = "Twenty";
multiplex[3] = "Thirty";
multiplex[4] = "Forty";
multiplex[5] = "Fifty";
multiplex[6] = "Sity";
multiplex[7] = "Seventy";
multiplex[8] = "Eighty";
multiplex[9] = "Ninety";
// Define name of 0...19
simpleDigit[0] = "Zero";
simpleDigit[1] = "One";
simpleDigit[2] = "Two";
simpleDigit[3] = "Three";
simpleDigit[4] = "Four";
simpleDigit[5] = "Five";
simpleDigit[6] = "Six";
simpleDigit[7] = "Seven";
simpleDigit[8] = "Eight";
simpleDigit[9] = "Nine";
simpleDigit[10] = "Ten";
simpleDigit[11] = "Eleven";
simpleDigit[12] = "Twelve";
simpleDigit[13] = "Thirteen";
simpleDigit[14] = "Fourteen";
simpleDigit[15] = "Fifteen";
simpleDigit[16] = "Sixteen";
simpleDigit[17] = "Seventeen";
simpleDigit[18] = "Eighteen";
simpleDigit[19] = "Nineteen";
/*
You can change exist currency by country
Example
// International System
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Hundred Thousand";
currency[6] = "Million";
currency[7] = "Ten Million";
currency[8] = "Hundred Million";
currency[9] = "Billion";
currency[10] = "Ten Billion";
currency[11] = "Hundred Billion";
currency[12] = "Trillion";
currency[13] = "Ten Trillion ";
currency[14] = "Hundred Trillion";
currency[15] = "Quadrillion";
currency[16] = "Ten Quadrillion";
currency[17] = "Hundred Quadrillion";
currency[18] = "Quintillion";
currency[19] = "Ten Quintillion";
*/
// Here mentioning indian currency
currency[0] = "";
currency[1] = "";
currency[2] = "Hundred";
currency[3] = "Thousand";
currency[4] = "Ten Thousand";
currency[5] = "Lakh";
currency[6] = "Ten Lakh";
currency[7] = "Crore";
currency[8] = "Ten Crore";
currency[9] = "Arab";
currency[10] = "Ten Arab";
currency[11] = "Kharab";
currency[12] = "Ten Kharab";
currency[13] = "Neel";
currency[14] = "Ten Neel";
currency[15] = "Padma";
currency[16] = "Ten Padma";
currency[17] = "Shankh";
currency[18] = "Ten Shankh";
currency[19] = "Maha-Shankh";
}
fun translate(num: String, length: Int, start: Int): Unit
{
if (length>0)
{
var ans: Int ;
if (length == 1)
{
ans = num[start] - '0';
print(" " + simpleDigit[ans]);
this.translate(num, length - 1, start + 1);
}
else
if (length == 2)
{
if (num[start] == '0')
{
this.translate(num, length - 1, start + 1);
}
else
{
ans = num[start] - '0';
ans *= 10 + (num[start + 1] - '0');
if (ans>= 10 && ans <= 19)
{
print(" " + simpleDigit[ans]);
}
else
{
ans = num[start] - '0';
print(" " + multiplex[ans]);
this.translate(num, length - 1, start + 1);
}
}
}
}
}
fun printWord(num: String, length: Int): Unit
{
if (length == 1)
{
// When number is single digit
this.translate(num, 1, 0);
return;
}
var counter: Int = 0;
var digits: Int = length;
var status: Boolean = false;
while (counter<length && digits>0)
{
if (num[counter] != '0')
{
// Tracker to find result
status = true;
if (digits == 1)
{
// When work with single digit
this.translate(num, 1, counter);
counter += 1;
digits -= 1;
}
else
if (digits == 2)
{
// When work with two digit
this.translate(num, 2, counter);
counter += 2;
digits -= 2;
}
else
{
// When number digit length more than 2
// Case A
if (digits == 3 || digits % 2 == 0)
{
// When work with single digit
this.translate(num, 1, counter);
counter += 1;
digits -= 1;
print(" " + currency[digits]);
}
else
{
this.translate(num, 2, counter);
counter += 2;
digits -= 2;
print(" " + currency[digits]);
}
}
}
else
{
counter += 1;
digits -= 1;
}
}
if (status == false)
{
// When In case get the all zero
print(" Zero ");
}
}
// Handles the request to print number words
fun words(num: String): Unit
{
// Get the length
var length: Int = num.count();
print(" Given Number : [" + num + "]\n");
if (length > 19)
{
print(" Number Out of range \n");
return;
}
// We assuming that given number is valid number
// And it is positive
this.printWord(num, length);
print("\n");
}
}
fun main(args: Array<String>): Unit
{
var task: NumberToWords = NumberToWords();
// Test Case
task.words("123");
task.words("12345678");
task.words("8905463");
task.words("100000000");
task.words("1000100001");
task.words("98815283");
task.words("842321");
task.words("5125235677842321");
task.words("9999");
task.words("86");
}
Output
Given Number : [123]
One Hundred Twenty Three
Given Number : [12345678]
One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight
Given Number : [8905463]
Eighty Nine Lakh Five Thousand Four Hundred Sity Three
Given Number : [100000000]
Ten Crore
Given Number : [1000100001]
One Arab One Lakh One
Given Number : [98815283]
Nine Crore Eighty Eight Lakh Fifteen Thousand Two Hundred Eighty Three
Given Number : [842321]
Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [5125235677842321]
Five Padma Twelve Neel Fifty Two Kharab Thirty Five Arab Sity Seven Crore Seventy Eight Lakh Forty Two Thousand Three Hundred Twenty One
Given Number : [9999]
Nine Thousand Nine Hundred Ninety Nine
Given Number : [86]
Eighty Six
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment