diff --git a/solutions/017/numberlettercounts.py b/solutions/017/numberlettercounts.py new file mode 100644 index 0000000..4f13780 --- /dev/null +++ b/solutions/017/numberlettercounts.py @@ -0,0 +1,73 @@ +numberWord = { + 0: '', + + 1: 'one', + 2: 'two', + 3: 'three', + 4: 'four', + 5: 'five', + 6: 'six', + 7: 'seven', + 8: 'eight', + 9: 'nine', + + 10: 'ten', + 11: 'eleven', + 12: 'twelve', + 13: 'thirteen', + 14: 'fourteen', + 15: 'fifteen', + 16: 'sixteen', + 17: 'seventeen', + 18: 'eighteen', + 19: 'nineteen', + + 20: 'twenty', + 30: 'thirty', + 40: 'forty', + 50: 'fifty', + 60: 'sixty', + 70: 'seventy', + 80: 'eighty', + 90: 'ninety', + + 100: 'onehundred', + 200: 'twohundred', + 300: 'threehundred', + 400: 'fourhundred', + 500: 'fivehundred', + 600: 'sixhundred', + 700: 'sevenhundred', + 800: 'eighthundred', + 900: 'ninehundred', + + 1000: 'onethousand' +} +andString = "and" + +numberString = "" + +for i in range (1,21): + numberString += numberWord[i] + +for i in range (21,1001): + ones = i % 10 + tens = i % 100 - ones + huns = i - tens - ones + + numberStringInProgress = "" + + if i == 20 or i == 30 or i == 40 or i == 50 or i == 60 or i == 70 or i == 80 or i == 90 or i == 100 or i == 200 or i == 300 or i == 400 or i == 500 or i == 600 or i == 700 or i == 800 or i == 900 or i == 1000: + numberString += numberWord[i] + else: + if i > 100: + numberStringInProgress += numberWord[huns] + numberStringInProgress += andString + if tens >= 20 or tens == 0: + numberStringInProgress += numberWord[tens] + numberStringInProgress += numberWord[ones] + elif tens == 10: + numberStringInProgress += numberWord[tens+ones] + numberString += numberStringInProgress + +print("The length of all the numbers from 1 to 1000 (inclusive) written out in words is " + str(len(numberString)) + " letters.")