Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mode = 2
- # Convert integer to words.
- if mode == 0:
- units = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
- 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen',
- 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen']
- tens = ['zero', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty',
- 'seventy', 'eighty', 'ninety']
- powers = ['zero', 'thousand', 'million', 'billion', 'trillion',
- 'quadrillion', 'quintillion', 'sextillion', 'septillion', 'octillion',
- 'nonillion', 'decillion']
- hundred = 'hundred'
- minus = 'minus'
- comma = ','
- and_ = ' and'
- space = ' '
- hyphen = '-'
- empty = ''
- key = len
- # Convert integer to number-of-words.
- elif mode == 1:
- units = [1 for n in range(20)]
- tens = [1 for n in range(0, 100, 10)]
- powers = [1 for n in range(12)]
- hundred = 1
- minus = 1
- comma = 0
- and_ = 1
- space = 0
- hyphen = 0
- empty = 0
- key = lambda n: n
- # Convert integer to number-of-syllables.
- elif mode == 2:
- units = [2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 1, 2, 2, 2, 2, 3, 2, 2]
- tens = [2, 1, 2, 2, 2, 2, 2, 3, 2, 2]
- powers = [2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3]
- hundred = 2
- minus = 2
- comma = 0
- and_ = 1
- space = 0
- hyphen = 0
- empty = 0
- key = lambda n: n
- def small_integer_name(n, use_and=False):
- s = empty
- if n >= 100:
- q, n = divmod(n, 100)
- s = units[q] + space + hundred + (
- (and_ if use_and else empty) + space if n > 0 else empty)
- if n >= 20:
- q, n = divmod(n, 10)
- s += tens[q] + (hyphen if n > 0 else empty)
- return (s + units[n] if n > 0 else s)
- def integer_name(n, use_comma=False, use_and=False, power=0):
- if n < 0:
- return minus + space + integer_name(-n, use_comma, use_and)
- elif n == 0:
- return units[0]
- s = empty
- if n >= 1000:
- q, n = divmod(n, 1000)
- s = integer_name(q, use_comma, use_and, power + 1) + (
- (comma if use_comma else empty) + space if n > 0 else empty)
- return (s + small_integer_name(n, use_and) +
- (space + powers[power] if power > 0 else empty) if n > 0 else s)
- print(sum(integer_name(n) for n in range(1, 1000001)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement