|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.11.2017, 00:13 | #1 |
Новичок
Джуниор
Регистрация: 30.11.2017
Сообщений: 4
|
Выдать текст "n программист(-а) (-ов)" с корректным окончанием. Я не программист, я только учусь!
Помогите понять что не так с моим кодом, у мня все запускается и на всех примерах работает, но в тесте мой код не проходит. Заранее спасибо
Задача: В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: "n программистов". Для того, чтобы это звучало правильно, для каждого n нужно использовать верное окончание слова. Напишите программу, считывающую с пользовательского ввода целое число n (неотрицательное), выводящее это число в консоль вместе с правильным образом изменённым словом "программист", для того, чтобы робот мог нормально общаться с людьми, например: 1 программист, 2 программиста, 5 программистов. В комнате может быть очень много программистов. Проверьте, что ваша программа правильно обработает все случаи, как минимум до 1000 человек. Sample Input 1: 5 Sample Output 1: 5 программистов Sample Input 2: 0 Sample Output 2: 0 программистов Мое решение: n=int(input()) if n%100 in [0,11, 12, 13, 14]: print(str(n) + " программистов") elif n%10 in [2,3,4]: print(str(n) + " программиста") elif n%10 in [1]: print(str(n) + " программист") elif n%10 in [5,6,7,8,9]: print(str(n) + " программистов") Если можно не пишите сразу как должно быть, а просто подскажите на что смотреть, почему то мне кажется что в принте я пишу что-то неверно, но я вроде уже использовала все известные мне пока варианты. Заранее спасибо! |
30.11.2017, 00:23 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
10 где будет?
|
30.11.2017, 00:27 | #3 |
Новичок
Джуниор
Регистрация: 30.11.2017
Сообщений: 4
|
О, да! Благодарю, упустила.
Но после исправления тест все равно ругается: "Failed test #11. Cannot check answer. Perhaps output format is wrong." |
30.11.2017, 03:22 | #4 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Так покажите последний код
|
30.11.2017, 12:10 | #5 |
Новичок
Джуниор
Регистрация: 30.11.2017
Сообщений: 4
|
n=int(input())
if n%100 in [0,10, 11, 12, 13, 14]: print(str(n) + " программистов") elif n%10 in [2,3,4]: print(str(n) + " программиста") elif n%10 in [1]: print(str(n) + " программист") elif n%10 in [5,6,7,8,9]: print(str(n) + " программистов") |
30.11.2017, 14:14 | #6 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
по какой ветке пойдут 90 программистов.
обычно перечисляются все частные случаи и добавляется ветка "все прочие". Код:
программа — запись алгоритма на языке понятном транслятору
|
30.11.2017, 19:16 | #7 |
Новичок
Джуниор
Регистрация: 30.11.2017
Сообщений: 4
|
n=int(input())
if n%100 in [0,10, 11, 12, 13, 14]: print(str(n) + " программистов") elif n%10 in [2,3,4]: print(str(n) + " программиста") elif n%10 in [1]: print(str(n) + " программист") elif n%10 in [0,5,6,7,8,9]: print(str(n) + " программистов") поставила ноль и все работает, спасибо |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с массивами. только учусь | lisica198808 | PHP | 3 | 06.06.2016 15:04 |
Программист 1С для настройки CRM, только Москва | Alex$ | Фриланс | 0 | 06.08.2012 13:30 |
Как выдать текст только заглавными буквами | IVR | Microsoft Office Excel | 2 | 25.11.2009 17:13 |