🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
编写一个程序,接收从0到9999的数字,并用俄语单词显示它。如果输入的数字超出此范围,或者输入的不是数字,则显示“输入不正确”的提示。
一行包含一个从0到9999(含)的整数。
一行包含用引号括起来的数字的文字表示。
1234
一千二百三十四
def number_to_words(n):
"""
Преобразует число от 0 до 9999 в его словесное представление на русском языке.
"""
if not 0 <= n <= 9999:
return "ввод не верный"
if n == 0:
return "ноль"
units = {
1: "один", 2: "два", 3: "три", 4: "четыре", 5: "пять",
6: "шесть", 7: "семь", 8: "восемь", 9: "девять"
}
teens = {
10: "десять", 11: "одиннадцать", 12: "двенадцать", 13: "тринадцать",
14: "четырнадцать", 15: "пятнадцать", 16: "шестнадцать",
17: "семнадцать", 18: "восемнадцать", 19: "девятнадцать"
}
tens = {
20: "двадцать", 30: "тридцать", 40: "сорок", 50: "пятьдесят",
60: "шестьдесят", 70: "семьдесят", 80: "восемьдесят", 90: "девяносто"
}
hundreds = {
100: "сто", 200: "двести", 300: "триста", 400: "четыреста",
500: "пятьсот", 600: "шестьсот", 700: "семьсот",
800: "восемьсот", 900: "девятьсот"
}
parts = []
# Обработка тысяч
if n >= 1000:
thousand_val = n // 1000
if thousand_val == 1:
parts.append("одна тысяча")
elif thousand_val == 2:
parts.append("две тысячи")
elif thousand_val in [3, 4]:
parts.append(units[thousand_val] + " тысячи")
else: # 5-9
parts.append(units[thousand_val] + " тысяч")
n %= 1000
# Обработка сотен
if n >= 100:
parts.append(hundreds[n // 100 * 100])
n %= 100
# Обработка десятков и единиц
if n >= 20:
parts.append(tens[n // 10 * 10])
n %= 10
if n > 0:
parts.append(units[n])
elif n >= 10:
parts.append(teens[n])
elif n > 0:
parts.append(units[n])
return " ".join(parts)
# Основная часть программы для считывания ввода и вывода результата
try:
num = int(input())
result = number_to_words(num)
print(result)
except ValueError:
print("ввод не верный")
🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
AD
广告
正在运行代码...