From b14ae6bd44706c453fe77828ea6efe8f659e15e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Israel=20O=2E=20Dil=C3=A1n?= Date: Mon, 15 Feb 2016 10:04:48 -0400 Subject: [PATCH] Created codetrotters_challenge2016.py My submission to Codetrotters 2016 coding challenge. --- codetrotters_challenge2016.py | 113 ++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 codetrotters_challenge2016.py diff --git a/codetrotters_challenge2016.py b/codetrotters_challenge2016.py new file mode 100644 index 0000000..c528072 --- /dev/null +++ b/codetrotters_challenge2016.py @@ -0,0 +1,113 @@ +# /////////////////////////////// +# Israel O. Dilan Pantojas // +# israelodilan@gmail.com // +#//////////////////////////////// + +#Program description: +print "\n\n\nThis program recieves a integer number in digits notation and returns it's equivalent in english.\n\n" + + + +#Dictionaries: + +# Unit numbers +digits = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8:'eigth', 9: 'nine'} + +# Products of ten +products = {10: 'ten', 11: 'eleven', 12: 'twelve', 13: 'thirteen', 14: 'fourteen', 15: 'fifteen', 16: 'sixteen', 17: 'seventeen', 18: 'eighteen', 19: 'nineteen', 2: 'twenty', 3: 'thirty', 4: 'fourty', 5: 'fifty', 6: 'sixty', 7: 'seventy', 8: 'egithy', 9: 'ninety'} + +# Powers of ten +powers = {100: 'hundred', 1000: 'thousand', 1000000: 'million'} + + +# Input prompt and validation: +a = input("\tInput a number from 0 to 999,999,999: ") +while a < 0 or a > 999999999: + a = input("\t\tPlease, try again: ") + +# Build list to translate: +b = [] +for e in str(a): + b.append(int(e)) + +# List for storing converted output +c = [] + +#Integer to word function: +def convert(x): + i = 0 + d = len(x) + while i != len(x): + # Testing stubs + # print "Total length: " + str(len(x)) + # print "Current length: " + str(d) + # print "Iterator value: " + str() + # print "Current Item: " + str(b[i]) + if b[i] == 0 and len(x) > 1: + pass + elif len(x) == 1: + c.append(digits[b[i]]) + else: + if d == 2: + if b[i] > 1: + c.append(products[b[i]]) + else: + c.append(products[int(str(b[i])+str(b[i+1]))]) + d -= 1 + i += 1 + elif d == 3: + c.append(digits[b[i]]) + c.append(powers[100]) + elif d == 4: + c.append(digits[b[i]]) + c.append(powers[1000]) + elif d == 5: + if b[i] > 1: + c.append(products[b[i]]) + if b[i+1] == 0: + c.append(powers[1000]) + else: + c.append(products[int(str(b[i])+str(b[i+1]))]) + c.append(powers[1000]) + d -= 1 + i += 1 + elif d == 6: + c.append(digits[b[i]]) + c.append(powers[100]) + if b[i+1] == 0 and b[i+2] == 0: + c.append(powers[1000]) + elif d == 7: + c.append(digits[b[i]]) + c.append(powers[1000000]) + elif d == 8: + if b[i] > 1: + c.append(products[b[i]]) + if b[i+1] == 0: + c.append(powers[1000000]) + else: + c.append(products[int(str(b[i])+str(b[i+1]))]) + c.append(powers[1000000]) + d -= 1 + i += 1 + elif d == 9: + c.append(digits[b[i]]) + c.append(powers[100]) + if b[i+1] == 0 and b[i+2] == 0: + c.append(powers[1000000]) + else: + c.append(digits[b[i]]) + d -= 1 + i+=1 + # print c + +# Call convert and format print output: +def int_to_word(x): + convert(x) + s = "" + for i in c: + s += str(i) + " " + print "\n\n\tOutput: " + s + "\n\n" + + +# Call int_to_word function: +int_to_word(b)