0
0 комментариев

Доброго времени суток. Задача написать функцию, принимающую на ввод строку с целым числом. Если число четное — разделить на 2. Если нечетное — умножить на 3 и прибавить 1. С полученным результатом проделать те же процедуры, в зависимости от четности, конечно. На выходе должна быть строка с последовательностью всех чисел-результатов, разделенных пробелом. Входное число > 0. Крайнее число в последовательности — 1.
Вот что у меня получилось:

def col(n):
sp = [n]
if n < 1:
   return []
while n > 1:
   if n % 2 == 0:
     n = n // 2
   else:
     n = 3 * n + 1
   sp.append(n)
for i in sp:
    print(i, end = ' ')

Интерпретатор выводит все верно (для числа 17 например):

17 52 26 13 40 20 10 5 16 8 4 2 1

Но в задачнике тест не проходит.

https://stepik.org/lesson/Collatz-conjecture-or-the-3n-+-1-problem-21305/step/1?adaptive=true&unit=5105
Ссылка на задачу. Что я сделал не так? Я предполагаю, что проблема с выводом.

return ' '.join(sp)

я сначала делал вместо принта, но в списке числа, а не строки. Посоветуйте, пожалуйста.


Добавить комментарий