Получаю неверное склонение слов на выходе

NotAreUse

Новичок
Пользователь
Ноя 7, 2020
5
0
1
Python:
print("Введите сумму покупки")  # Задача про копейки
G = int(input())
n = G // 100
v = G % 100
if n % 10 == 1 and n % 100 != 11:
    print(str(n) + " рубль")
elif 2 <= n % 10 <= 4 and n % 100 != 12 and n % 100 != 13 and n % 100 != 14:
    print(str(n) + " рубля")
else:
    print(str(n) + " рублей")

if v % 10 == 1 and v != 11:
    print(str(v) + " копейка")
elif 2 <= v % 10 <= 4 and n % 100 != 12 and n % 100 != 13 and n % 100 != 14:
    print(str(v) + " копейки")
else:
    print("{0} копеек".format(str(v)))

Задача про сумму покупки в рублях и копейках.
При вводе цифр, например 13, получаю:
0 рублей
13 копейки
Но в то же время, когда ввожу 1313, получаю:
13 рублей
13 копеек
То есть в окончаниях всё нормально
Как изменить код, чтобы было "13 копеек", так же с числами 12 и т.д, то есть в верном падежном окончании?
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Как изменить код, чтобы было "13 копеек", так же с числами 12 и т.д, то есть в верном падежном окончании?
вот тут есть решение для аналогичной задачи: ссылка.
 

NotAreUse

Новичок
Пользователь
Ноя 7, 2020
5
0
1
вот тут есть решение для аналогичной задачи: ссылка.
Там не очень понятно, немного другая задача
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Там не очень понятно, немного другая задача
Так понятней?
Python:
n = input()

if n[-2:] in ('11', '12', '13', '14'):
    print(n, 'копеек')
elif n[-1] == '1':
    print(n, 'копейка')
elif n[-1] in ('2', '3', '4'):
    print(n, 'копейки')
else:
    print(n, 'копеек')
 

NotAreUse

Новичок
Пользователь
Ноя 7, 2020
5
0
1
Так понятней?
Python:
n = input()

if n[-2:] in ('11', '12', '13', '14'):
    print(n, 'копеек')
elif n[-1] == '1':
    print(n, 'копейка')
elif n[-1] in ('2', '3', '4'):
    print(n, 'копейки')
else:
    print(n, 'копеек')
Да, огромное спасибо Вам за помощь!)
 

Форум IT Специалистов