Найти в Дзене

Задача 46. Число Е

Простая задача на использование условий и знание правил округления:

Условие задачи с сайта acmp.ru
Условие задачи с сайта acmp.ru

Первым делом считаем входные данные и приведём к числовому типу:

Считываем входные данные
Считываем входные данные

Отдельно разберём случай с нулём. Так будет удобнее, потому что вывод довольно сильно отличается - не надо выводить не только десятичные знаки, но и точку. А также, в общем случае при округлении надо смотреть на следующую цифру, а при n = 0 она будет не следующей в строке. Поэтому запишем условие сразу с выводом ответа:

Обработка крайнего случая
Обработка крайнего случая

Во всех остальных случаях ответ будет состоять из трёх частей:

  • строки "2."
  • подстроки из n-1 десятичной цифры
  • последней цифры, возможно увеличенной на 1

Заметим, что трюк с изменением лишь последней цифры возможен потому что в заданном диапазоне числа Е нет девятки, после которой идёт 5 или больше. Потому что в таком случае при округлении до девятки, должны будут меняться как минимум две последние цифры.

Сохраним все десятичные цифры числа в строку, а также в конце ещё 0, чтобы корректно (без выхода за пределы строки) отрабатывал случай с n = 25.

После этого можем сразу начать построение ответа, используя конкатенацию строк, взятие подстроки через слайс и взятие последней цифры из массива из двух элементов, вместо ещё одного условного оператора:

Построение ответа из трёх частей
Построение ответа из трёх частей

Предыдущий выпуск: Задача 2. Сумма

Я очень хочу, чтобы мои советы были полезны вам, а для того, чтобы быстрее всех получать новые статьи можно подписаться на мой канал.

Наука
7 млн интересуются