Предмет: Информатика, автор: flexstar

ПРОСЬБА РЕШИТЬ ЧЕРЕЗ УСЛОВНЫЙ ОПЕРАТОР IF НА PYTHON
Апельсины бочками
Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес — отгружать апельсины бочками. Партнёрам важно знать, сколько именно бочек апельсинов отгружается каждый день.

Мобильный телефон Василия поддерживает только транслит, поэтому он передаёт сообщения вида "n bochek". Например, "3 bochki" или "1 bochka".

Напишите программу, которая выбирает правильное слово (из "bochka" , "bochek" , "bochki" ) в зависимости от значения n.
Входные данные

Одно целое число n (0≤n≤1000).
Выходные данные

Соответствующая фраза на транслите
Ввод
Вывод
3
3 bochki
1
1 bochka
15
15 bochek

Ответы

Автор ответа: nikapykh
1

Ответ:

a=int(input())

last = a % 10

e = 'ek'

if last == 1 and a % 100 != 11:

e = 'ka'

elif 2 <= last <= 4 and a // 10 % 10 != 1:

e = 'ki'

print(F'{a} boch{e}')

Объяснение:

Вот как-то так.....


flexstar: СПАСИБО
nikapykh: пожалуйста)
Автор ответа: mathgenius
1

Через if скучно решать конечно, но пусть тоже полежит такой вариант.

Первый способ)

n=int(input('Введите натуральное число: '))

enddigit = n % 10 *(n//10 % 10 != 1)

end = 'ek'

if enddigit == 1:

   end = 'ka'

elif enddigit in range(2,5):

   end ='ki'

print(f'{n} boch{end}')

Второй способ) (решение через 1 конструкцию if, else)

n=int(input('Введите натуральное число: '))

a = n % 10 *(n//10 % 10 != 1 and  n % 10 < 5)

end = 'ka'*(a==1) + 'ki'*(a!=1) if a else 'ek'

print(f'{n} boch{end}')

Третий способ) (вариация второго способа без условий!)

n=int(input('Введите натуральное число: '))

a = n % 10 *(n//10 % 10 != 1)*(n % 10 < 5)

print(n, 'boch' + ('ka'*(a==1) + 'ki'*(a!=1))*(a!=0) + 'ek'*(a == 0))

Приложения:
Похожие вопросы
Предмет: Алгебра, автор: sokser