forked from ghostmkg/programming-language
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconvert a given number to words.py
83 lines (62 loc) · 1.83 KB
/
convert a given number to words.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# Python3 program to print a given number in words.
# The program handles till 9 digits numbers and
# can be easily extended to 20 digit number
# strings at index 0 is not used, it
# is to make array indexing simple
one = [ "", "one ", "two ", "three ", "four ",
"five ", "six ", "seven ", "eight ",
"nine ", "ten ", "eleven ", "twelve ",
"thirteen ", "fourteen ", "fifteen ",
"sixteen ", "seventeen ", "eighteen ",
"nineteen "];
# strings at index 0 and 1 are not used,
# they are to make array indexing simple
ten = [ "", "", "twenty ", "thirty ", "forty ",
"fifty ", "sixty ", "seventy ", "eighty ",
"ninety "];
# n is 1- or 2-digit number
def numToWords(n, s):
str = "";
# if n is more than 19, divide it
if (n > 19):
str += ten[n // 10] + one[n % 10];
else:
str += one[n];
# if n is non-zero
if (n):
str += s;
return str;
# Function to print a given number in words
def convertToWords(n):
# stores word representation of given
# number n
out = "";
# handles digits at ten millions and
# hundred millions places (if any)
out += numToWords((n // 10000000),
"crore ");
# handles digits at hundred thousands
# and one millions places (if any)
out += numToWords(((n // 100000) % 100),
"lakh ");
# handles digits at thousands and tens
# thousands places (if any)
out += numToWords(((n // 1000) % 100),
"thousand ");
# handles digit at hundreds places (if any)
out += numToWords(((n // 100) % 10),
"hundred ");
if (n > 100 and n % 100):
out += "and ";
# handles digits at ones and tens
# places (if any)
out += numToWords((n % 100), "");
return out;
# Driver code
# long handles upto 9 digit no
# change to unsigned long long
# int to handle more digit number
n = 438237764;
# convert given number in words
print(convertToWords(n));
# This code is contributed by mits