Уведомления

Группа в Telegram: @pythonsu

#1 Май 21, 2022 21:18:04

1AKU1
Зарегистрирован: 2022-05-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Стек

Используя функцию-генератор из задачи , среди первых членов последовательности найти последнее число, кратное 3

   
def gen(n, a0, a1, a2, a3):
    if n == 4:
        return
    a0, a1, a2, a3 = a1, a2, a3, 3 * a2 - a0
    if a3 % 7 in (2, 5):
        yield a3
    yield from gen(n - 1, a0, a1, a2, a3)
an = [1, 0, 2, 1]
for i in gen(100, *an):
   print(i)

Отредактировано FishHook (Май 21, 2022 21:27:56)

Офлайн

#2 Май 21, 2022 21:29:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Стек

1AKU1
найти последнее число, кратное 3
ну и в чем проблема?
  i % 3



Офлайн

#3 Май 21, 2022 21:36:45

1AKU1
Зарегистрирован: 2022-05-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Стек

FishHook
нужно использовать стек

Офлайн

#4 Май 22, 2022 00:31:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Стек

1AKU1
нужно использовать стек
Его по-разному можно использовать. Как конкретно использовать?

Один из 100500 способов
  
>>> def gen(n, a0, a1, a2, a3):
...     if n == 4:
...         return
...     a0, a1, a2, a3 = a1, a2, a3, 3 * a2 - a0
...     if a3 % 7 in (2, 5):
...         yield a3
...     yield from gen(n - 1, a0, a1, a2, a3)
... 
>>> an = [1, 0, 9, 1]
>>> stack = list(gen(100, *an))
>>> 
>>> out = None
>>> while stack:
...     n = stack.pop()
...     if n % 3 == 0:
...         out = n
...         break
... 
>>> print(out)
1166035962247502391369
>>>



Отредактировано py.user.next (Май 22, 2022 00:38:34)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version