Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
convert number to words solution in Clear category for The Secret Room by Olpag
n2w = {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', 0 : 'zero'}
def convert_n2w(num):
if num < 20:
return n2w[num]
if num < 100:
if num % 10 == 0:
return n2w[num]
else:
return n2w[num // 10 * 10] + ' ' + n2w[num % 10]
if num < 1000:
if num % 100 == 0:
return n2w[num // 100] + ' hundred'
else:
return n2w[num // 100] + ' hundred ' + convert_n2w(num % 100)
if num == 1000: return 'one thousand'
def secret_room(number):
return sorted(convert_n2w(num) for num in range(1, number + 1)).index(convert_n2w(number)) + 1
if __name__ == '__main__':
print("Example:")
print(secret_room(5))
#These "asserts" using only for self-checking and not necessary for auto-testing
assert secret_room(5) == 1 #five, four, one, three, two
assert secret_room(3) == 2 #one, three, two
assert secret_room(1000) == 551
print("Coding complete? Click 'Check' to earn cool rewards!")
Feb. 4, 2019
Comments: