Files
freeCodeCamp/curriculum/challenges/english/blocks/daily-coding-challenges-python/69c6ff713a52713463aa7927.md
T

2.9 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
69c6ff713a52713463aa7927 Challenge 261: Number Words 29 challenge-261

--description--

Given an integer from 0 to 99, return its English word representation.

  • 0 returns "zero".
  • Numbers 1-19 have unique names ("one", "two", ..., "ten", "eleven", ..., "eighteen", "nineteen").
  • Multiples of 10 from 20-90 have their own names ("twenty", "thirty", ..., "eighty", "ninety").
  • Numbers 21-99 that are not multiples of 10 are written as two words joined by a hyphen. For example "forty-two" and "fifty-three".

--hints--

get_number_words(0) should return "zero".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(0), "zero")`)
}})

get_number_words(10) should return "ten".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(10), "ten")`)
}})

get_number_words(19) should return "nineteen".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(19), "nineteen")`)
}})

get_number_words(30) should return "thirty".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(30), "thirty")`)
}})

get_number_words(53) should return "fifty-three".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(53), "fifty-three")`)
}})

get_number_words(7) should return "seven".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(7), "seven")`)
}})

get_number_words(12) should return "twelve".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(12), "twelve")`)
}})

get_number_words(60) should return "sixty".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(60), "sixty")`)
}})

get_number_words(67) should return "sixty-seven".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(67), "sixty-seven")`)
}})

get_number_words(98) should return "ninety-eight".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_words(98), "ninety-eight")`)
}})

--seed--

--seed-contents--

def get_number_words(n):

    return n

--solutions--

def get_number_words(n):
    ones = ["zero","one","two","three","four","five","six","seven","eight","nine",
            "ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen",
            "seventeen","eighteen","nineteen"]
    tens = ["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"]

    if n < 20:
        return ones[n]
    if n % 10 == 0:
        return tens[n // 10]
    return tens[n // 10] + "-" + ones[n % 10]