Цель этой функции - подсчитать количество шагов, которые требуется числу, чтобы добраться до 1 после выполнения операций. Число, которое вы помещаете в функцию, делится на 2, если число четное, и утроено и увеличивается на 1, если число нечетное. Эти операции выполняются по числу, пока оно не достигнет одного. Например, если вы начнете с номера 3, он выполнит следующие шаги: 3> 10> 5> 16> 8> 4> 2> 1 функция должна будет вернуть номер «8», потому что для этого потребовалось 8 шагов для 3, чтобы перейти к 1 после деления четных чисел и умножения на 3 и добавления 1 к нечетным числам.Подсчет количества шагов до номера доходит до 1
Вот мой код. Я понял, как вернуть мою функцию на первый шаг (пример: у меня могло бы быть 3 возврата 10 и 6 return 3), но я не могу понять, как подсчитать количество функций, которые нужно выполнить, чтобы достичь 1.
def collatz_counts(n):
total = 0
while n > 1:
if n % 2 == 0:
n =(n // 2)
total += 1
elif n % 2 == 1:
n = (3 * n + 1)
total += 1
return total
я не рассматривал свою логику, но ваш файл 'вернуть total' должны быть вне вашего времени. – idjaw
Это выглядит всего лишь 7 шагов ... – AChampion
@AChampion его 8, считая первый шаг – famguy74