📌  相关文章
📜  程序以单词打印给定的数字(1)

📅  最后修改于: 2023-12-03 14:56:35.518000             🧑  作者: Mango

程序以单词打印给定的数字

这是一个简单的程序,可以将给定的数字以单词的形式打印出来。

使用方法

使用该程序很简单,只需要输入要打印的数字即可。程序会自动将数字转换为单词形式,并将结果输出到屏幕上。

def number_to_words(num: int) -> str:
    """
    将给定的数字转换为单词形式
    :param num: 要转换的数字,范围为 [0, 10^9]
    :return: 转换后的单词形式字符串
    """
    if num == 0:
        return 'zero'

    ones = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    tens = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
    teens = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen']
    thousands = ['', 'thousand', 'million', 'billion']

    def helper(num: int) -> str:
        if num == 0:
            return ''
        elif num < 10:
            return ones[num] + ' '
        elif num < 20:
            return teens[num - 10] + ' '
        elif num < 100:
            return tens[num // 10] + ' ' + helper(num % 10)
        else:
            return ones[num // 100] + ' hundred ' + helper(num % 100)

    words = ''
    i = 0
    while num > 0:
        if num % 1000 != 0:
            words = helper(num % 1000) + thousands[i] + ' ' + words
        num //= 1000
        i += 1

    return words.strip()
例子

下面是一些例子,展示如何使用该程序打印出给定数字的单词形式:

print(number_to_words(0))
# 输出: zero

print(number_to_words(12345))
# 输出: twelve thousand three hundred forty five

print(number_to_words(987654321))
# 输出: nine hundred eighty seven million six hundred fifty four thousand three hundred twenty one