diff --git a/numberwords.py b/numberwords.py index 8c590cd..e7baab9 100644 --- a/numberwords.py +++ b/numberwords.py @@ -15,19 +15,46 @@ TENS_NAMES = [ ] def int_under_1000000_to_str(number): - return "umm..." + if number < 1000: + return int_under_1000_to_str(number) + else: + thousands, remainder = divide_with_remainder(number, 1000) + if remainder ==0: + return f"{int_under_1000_to_str(thousands)} thousand" + else: + return f"{int_under_1000_to_str(thousands)} thousand, {int_under_1000_to_str(remainder)}" def int_under_1000_to_str(number): - return "umm..." + if number < 100: + return int_under_100_to_str(number) + else: + hundreds, remainder = divide_with_remainder(number, 100) + if remainder == 0: + return f"{int_under_10_to_str(hundreds)} hundred" + else: + return f"{int_under_10_to_str(hundreds)} hundred and {int_under_100_to_str(remainder)}" def int_under_100_to_str(number): - return "umm..." + if number < 10: + return int_under_10_to_str(number) + elif number < 20: + return int_under_20_to_str(number) + else: + tens, ones = divide_with_remainder(number, 10) + if ones == 0: + return TENS_NAMES[tens] + else: + return f"{TENS_NAMES[tens]}-{int_under_10_to_str(ones)}" def int_under_20_to_str(number): - return "umm..." + if number < 10: + return int_under_10_to_str(number) + else: + return TWEEN_AND_TEEN_NAMES[number - 10] + def int_under_10_to_str(number): - return "umm..." + return DIGIT_NAMES[number] def divide_with_remainder(dividend, divisor): """Divides one number by another, using whole-number division.