تابعنا

youtube

شاهد شروحات ودروس في الاكسل Excel Powerquery

الأحد، 7 يونيو 2026

Number Letter Counts-python challenge


Number Letter Counts



If the numbers $1$ to $5$ are written out in words: one, two, three, four, five, then there are $3 + 3 + 5 + 4 + 4 = 19$ letters used in total.

If all the numbers from $1$ to $1000$ (one thousand) inclusive were written out in words, how many letters would be used?


NOTE: Do not count spaces or hyphens. For example, $342$ (three hundred and forty-two) contains $23$ letters and $115$ (one hundred and fifteen) contains $20$ letters. The use of "and" when writing out 

numbers is in compliance with British usage.


-------------

ones = {
    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"
}

tens = {
    20: "twenty", 30: "thirty", 40: "forty", 50: "fifty",
    60: "sixty", 70: "seventy", 80: "eighty", 90: "ninety"
}

def word(n):
    if n == 1000:
        return "one thousand"

    if n >= 100:
        if n % 100 == 0:
            return ones[n // 100] + " hundred"
        else:
            return ones[n // 100] + " hundred and " + word(n % 100)

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

    return ones[n]

total = 0

for i in range(1, 1001):
    w = word(i)
    w = w.replace(" ", "").replace("-", "")
    total += len(w)

print(total)

ليست هناك تعليقات:

إرسال تعليق