Write a program to represent the given number in words
//Range of conversion is less than or equal to range of integer
import java.util.*;
class Words {
String ones[] = {
"",
"One",
"Two",
"Three",
"Four",
"Five",
"Six",
"Seven",
"Eight",
"Nine",
"Ten",
"Eleven",
"Twelve",
"Thirteen",
"Fourteen",
"Fifteen",
"Sixteen",
"Seventeen",
"Eighteen",
"Nineteen"
};
String tens[] = {
"",
"Ten",
"Twenty",
"Thirty",
"Forty",
"Fifty",
"Sixty",
"Seventy",
"Eighty",
"Ninety",
};
String amt[] = {
"",
"Thousand",
"Million",
"Billion",
};
}
class Numbers extends Words {
String number;
Scanner sc = new Scanner(System.in);
Numbers() {
System.out.print("Enter number : ");
number = sc.nextLine();
}
}
class Convert extends Numbers {
int num;
String word = " ";
int array[] = new int[5];
Convert() {
num = Integer.parseInt(this.number);
}
void dividesNumber() {
int i;
String _word = "";
for(i = 0; num != 0; i++) {
int digit;
digit = num % 1000;
array[i] = digit;
num = num / 1000;
}
for(int j = (i-1); j >= 0 ; j--) {
_word = numberToWord(array[j], j);
}
System.out.println();
System.out.println("=> " + _word);
}
String numberToWord(int digit, int n) {
if(digit > 0 && digit < 20) {
word = word + ones[digit] + " " + amt[n] + " ";
}
else if(digit > 19 && digit < 100) {
word = word + tens[(digit - (digit%10))/10] + " " + ones[digit%10] + " " + amt[n] + " ";
}
else if(digit > 99 && digit < 1000) {
word = word + ones[(digit - (digit%100))/100] + " Hundred ";
if((digit % 100) < 20) {
word = word + ones[digit%100] + " ";
}
else {
word = word + tens[((digit%100) - (digit%10))/10] + " " + ones[digit%10] + " ";
}
word = word + amt[n] + " ";
}
return word;
}
}
class NumberConversion {
public static void main(String args[]) {
Convert n1 = new Convert();
n1.dividesNumber();
}
}
0 Comments