pythonist_ru | Unsorted

Telegram-канал pythonist_ru - Pythonist.ru - образование по питону

25092

Pythonist.ru - помощь в подготовке к собеседованию на позицию Python Developer. Реклама: @anothertechrock РКН: https://rknn.link/car

Subscribe to a channel

Pythonist.ru - образование по питону

Задача с кодом. Сиракузская последовательность

Сиракузская последовательность генерируется следующим образом. Берем любое натуральное число n. Если оно четное, то делим его на 2, а если нечетное, то умножаем на 3 и прибавляем 1 (получаем 3n + 1). Над полученным числом выполняем те же самые действия, и так далее.

Немецкий математик Коллатц выдвинул гипотезу: какое бы начальное число n мы ни взяли, рано или поздно мы получим единицу.

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

Примеры:

collatz(2) ➞ (2, 2)
# seq = [2, 1]

collatz(3) ➞ (8, 16)
# seq = [3, 10, 5, 16, 8, 4, 2, 1]

collatz(7) ➞ (17, 52)
# seq = [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]

collatz(8) ➞ (4, 8)
# seq = [8, 4, 2, 1]

Решение на нашем сайте.

#задача #coding

Читать полностью…
Subscribe to a channel