Задачи с кодом

Маленькая большая последовательность

Дана следующая последовательность чисел:

5, 100, 6, 200, 7, 400, 8, 800, 9, 1600, 10, 3200, …

На позиции 1 стоит число 5. Напишите функцию, которая будет возвращать число на позиции n в этой последовательности.

Примеры

little_big(4) ➞ 200
little_big(5) ➞ 7
little_big(28) ➞ 819200

Примечание: исходим из того, что input всегда будет валидным.

Варианты решений

def little_big(n):
    return (n + 1) // 2 + 4 if n % 2 else 100 * 2** ((n // 2) - 1)
def little_big(n):
    return 5 + n // 2 if n % 2 else 100 * 1 << n // 2 - 1
def little_big(n):
    if n % 2 == 0:
        x = n // 2
        ctr = 50
        for i in range(x):
            ctr *= 2
        return ctr
    else:
        x = n // 2 + 1
        ctr = 4
        for i in range(x):
            ctr += 1
        return ctr

Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago