aboutsummaryrefslogtreecommitdiffstats
path: root/17-Number-Letter-Counts/wordnums.py
blob: 168e1c422f5d94f11f91b22debe87be8900e9410 (plain)
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
ones = ["","one", "two", "three", "four",
        "five", "six", "seven", "eight", "nine"]
weirdos = ["thirteen", "twelve", "eleven", "ten"]
tens = ["","teen", "twenty", "thirty", "forty",
        "fifty", "sixty", "seventy", "eighty", "ninety"]
nd = "AND"

#num must be less than 999#


def numToWord(num):
    digits = str(num)
    if (len(digits) == 1):  # one digit
        return ones[num]
    if (len(digits) == 2):  # two digits
        if(num < 14):  # special case for ten eleven twelve
            return weirdos[13 - num]
        if (num == 15):
            return "fifteen"
        if (num == 18):
            return "eighteen"
        t = digits[0]
        o = digits[1]
        if (int(t) == 1):
            return numToWord(int(o)) + tens[int(t)]
        else:
            return tens[int(t)] + numToWord(int(o))
    #number is three digits#
    h = digits[0]
    t = digits[1]
    o = digits[2]
    if(num % 100 == 0):
        return numToWord(int(h)) + "hundred"
    else:
        return numToWord(int(h)) + "hundred"+nd+numToWord(int(t+o))


n = int(input("Number: "))
out = ""
for i in range(1, n):
    out += numToWord(int(i))

out += "onethousand"
print(out)
print(str(len(out)) + " letters")