Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2022, 03:55   #1
F1nfactory
Новичок
Джуниор
 
Регистрация: 21.12.2022
Сообщений: 4
По умолчанию Длинная улица

Условие
В городе, где живет Тимофей, все дома расположены вдоль одной стороны единственной улицы. Нумерация домов начинается с 0, в котором как раз и проживает наш герой. Сегодня он с кратким рабочим визитом намеревается посетить своего друга Арсения, который проживает в доме номер a.

Тимофей может идти пешком, при этом перемещение от дома номер d до дома d+1(или наоборот) занимает у него ровно одну минуту.

Также Тимофей может поехать на автобусе, первая остановка которого расположена как раз напротив его дома, а все последующие — напротив домов, номера которых оканчиваются на 0 (то есть 10, 20, и так далее). При этом перемещение от одной остановки до следующей занимает у автобуса ровно одну минуту.

Тимофей может сесть на автобус, который сразу же отправится в путь и выйти на любой из его остановок. Какое наименьшее время займет дорога до дома Арсения?

Формат входных данных
Единственная строка входного файла содержит натуральное число a— номер дома Арсения.

Формат выходных данных

Выведите одно натуральное число*— ответ на вопрос задачи
F1nfactory вне форума Ответить с цитированием
Старый 21.12.2022, 07:01   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Кажется "a // 10 + min(a % 10, 11 - a % 10)".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 23.12.2022, 18:47   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

У меня получилось так:
Код:
ta = a // 10 + a % 10           # до первой подходящей остановки и проходи вперёд
tb = a // 10 + 1 + (-a) % 10    # до следующей и проходим назад
t1 = min(ta, tb)
Результат совпадает с кодом от BDA.

PS: Python правильно вычисляет остаток для отрицательного числа, в отличие, например, Pascal.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Длинная длинная задача Suby Общие вопросы C/C++ 3 01.12.2012 12:26
Длинная арифметика на C++ Kingdom_Reborn Помощь студентам 0 06.04.2011 22:32
Создать лист, где каждая улица будет повторяться только один раз Blackwind Microsoft Office Excel 12 19.09.2009 23:27