Задача на условие

В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: «n программистов».

Для того, чтобы это звучало правильно, для каждого n нужно использовать верное окончание слова.

Напишите программу, считывающую с пользовательского ввода целое число nn (неотрицательное), выводящее это число в консоль вместе с правильным образом изменённым словом «программист», для того, чтобы робот мог нормально общаться с людьми, например: 1 программист, 2 программиста, 5 программистов.

В комнате может быть очень много программистов. Проверьте, что ваша программа правильно обработает все случаи, как минимум до 1000 человек.

Решение:

Использовался вариант с текстовыми переменными, можно работать с числами (выделять остаток от деления). Сразу выделяем самый простой вариант — вариант «программист».

if pr[-1] == «1» and pr[-2:] !=»11″: — если последний символ «1», но два последних не являются «11» (201 программист, но 211 программистов)

Далее выделяем числа, которые заканчиваются на «2», «3» или «4», при помощи вложенного блока if проверяем два последних символа. Если это «12», «13» или «14» — вариант «программистов», иначе — вариант «программиста» (212 программистов, но 202 программиста).

Во всех оставшихся вариантах используется окончание «программистов».

pr = input()
if pr[-1] == "1" and pr[-2:] !="11":
    print (pr + " программист")
elif (pr[-1] == "2" or pr[-1] == "3" or pr[-1] == "4"):
    if (pr[-2:] =="12" or pr[-2:] =="13" or pr[-2:] == "14"):
        print (pr + " программистов") 
    else:
        print (pr + " программиста")
else:
    print (pr + " программистов")




Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: