Convert a positive integer into words using
functions and delegation. Example:
1234 β
One Thousand Thirty Four
digits = ["Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"] decimals = ["Ten","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"] teens = ["Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"]
digitsteensdecimals +
Ones()
Tens()/Ones()
OnesTensHundredsThousands
# Framework-only skeleton (students must implement the logic)
digits = ["Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"]
decimals = ["Ten","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"]
teens = ["Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"]
def Ones(n):
# TODO
pass
def Tens(n):
# TODO
pass
def Hundreds(n):
# TODO
pass
def Thousands(n):
# TODO
pass
def NumberToWords(n):
# TODO
pass
# Try:
# print(NumberToWords(1234))
digits = ["Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"]
decimals = ["Ten","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"]
teens = ["Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"]
def Ones(n):
return digits[n]
def Tens(n):
if n < 10:
return Ones(n)
if n < 20:
return teens[n - 10]
t = n // 10
r = n % 10
return decimals[t - 1] if r == 0 else decimals[t - 1] + " " + Ones(r)
def Hundreds(n):
h = n // 100
r = n % 100
return Ones(h) + " Hundred" if r == 0 else Ones(h) + " Hundred " + Tens(r)
def Thousands(n):
th = n // 1000
r = n % 1000
return Ones(th) + " Thousand" if r == 0 else Ones(th) + " Thousand " + NumberToWords(r)
def NumberToWords(n):
if n < 10:
return Ones(n)
elif n < 100:
return Tens(n)
elif n < 1000:
return Hundreds(n)
elif n < 10000:
return Thousands(n)
else:
return "Out of range"
# Demo:
print(NumberToWords(1234))