Наткнулся я на один старый сайт с квестами по программированию и что-то засосало. Сейчас нахожусь в процессе решения задач и решил описать, как этот процесс протекает. Сайт называется http://www.pythonchallenge.com. Создан он был очень давно и задания напоминают квестовые игры начала 2000-х годов вроде Фантасмагории, разгадав загадку вы получаете в ответе адрес следующей. После успешного выполнения каждого задания становится доступной страница с решениями на разных языках программирования и разными алгоритмами. Я собираюсь разбирать решения только на Python 3.
Итак, поехали! Первое задание очень простое: нужно возвести 2 в 38 степень. В Python это делается так:
1 | print(2 ** 38) |
print(2 ** 38)
или так:
1 | print(pow(2, 38)) |
print(pow(2, 38))
с помощью битового сдвига влево:
1 | print(1 << 38) |
print(1 << 38)
или немного извращенный вариант с reduce:
1 2 | from functools import reduce print(reduce(lambda x, y: x * y, [2] * 38)) |
from functools import reduce print(reduce(lambda x, y: x * y, [2] * 38))
А вот и результат:
Меняем в адресной строке 0.html на результат_вычислений.html и переходим к следующему заданию.