Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 14, 2017 13:18:39

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в цикле фор возвращаться к последнему подсчитаному числу?

Моя задача состоит в том чтобы сгенерировать список чисел от одного данного числа:
Если число чётное(m):
—m/2
Если нечётное:
—3*m+1
Это число добавляем в список.
Потом мы берем только что вычислененое число и делаем ту же процедуру ..и так далее к 1.
Пример: 5 —»5 16 8 4 2 1
m=input()
sequence=
if m%2==0:
m=m/2
else:
m=3*m+1
sequence.append(m)
?????
for elements in sequence:
print (sequence, end=' ')
Спасибо заранее

Офлайн

#2 Окт. 14, 2017 13:32:58

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Как в цикле фор возвращаться к последнему подсчитаному числу?

 m=int(input('enter number'))
sequence= []
sequence.append(m)
if m%2==0:
    m=m//2
else:
    m=3*m+1
while m>=1:
    sequence.append(m)
    m = m//2
for x in sequence:
    print(x, end=' ')

Офлайн

#3 Окт. 14, 2017 15:56:58

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в цикле фор возвращаться к последнему подсчитаному числу?

Romissevd

Спасибо за быстрый ответ, но тест не работает для всех чисел. Например для номера 3 должно быть : 3 10 5 16 8 4 2 1 но он даёт: 3 10 5 4 2 1

Офлайн

#4 Окт. 14, 2017 16:05:44

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Как в цикле фор возвращаться к последнему подсчитаному числу?

Немного не понял условие сперва.

 m=int(input('enter number'))
sequence= []
sequence.append(m)
while m > 1:
    if m %2 == 0:
        m = m//2
    else:
        m = 3*m + 1
    sequence.append(m)
for x in sequence:
    print(x, end=' ')

Отредактировано Romissevd (Окт. 14, 2017 16:06:02)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version