Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 9, 2016 21:09:44

be_smmr
Зарегистрирован: 2016-06-08
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Общее кратное элемента списка (рекурсивная функция) Очень срочно!!!

Проблема с созданием рекурсивной функции для нахождения общего кратного элементов списка (для двух элементов работает)

import random
def random_numb(n):
    L = []
    for i in range(n):
        x = random.randint(-20, 20)
        L.append(x)
    return L
def nod(a, b):   #nod
    if a > b:
        return nod(b, a % b)
    else:
        return nod(a,b % a)
def nok(a, b):    #nok
    return a * b / nod(a, b)
def nok_of_array(L):    #nok spiska
    if len(L) == 2:
        return nok(L[0], L[1])
    else:
        return nok(nok_of_array(L[:-1]) , L[-1]) # Тут сама проблема
n = int(input())
M = random_numb(n)
print(M)
print(nok_of_array(n))

Офлайн

#2 Июнь 10, 2016 04:58:02

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

Общее кратное элемента списка (рекурсивная функция) Очень срочно!!!

>>> import random
>>> 
>>> def random_numb(n):
...     L = []
...     for i in range(n):
...         x = random.randint(-20, 20)
...         L.append(x)
...     return L
... 
>>> def nod(a, b):   #nod
...     a, b = abs(a), abs(b)
...     if not (a and b):
...         return a + b
...     if a > b:
...         return nod(b, a % b)
...     else:
...         return nod(a, b % a)
... 
>>> def nok(a, b):    #nok
...     return abs(a * b) // (nod(a, b) or 1)
... 
>>> def nok_of_array(L):    #nok spiska
...     if len(L) == 2:
...         return nok(L[0], L[1])
...     else:
...         return nok(nok_of_array(L[:-1]) , L[-1]) # Тут сама проблема
... 
>>> n = 10 #int(input())
>>> M = random_numb(n)
>>> print(M)
[-11, -20, 6, -9, -3, 14, -5, 19, 16, 1]
>>> print(nok_of_array(M))
1053360
>>>



Отредактировано py.user.next (Июнь 10, 2016 04:59:30)

Офлайн

#3 Июнь 10, 2016 06:42:43

andreyrog
Зарегистрирован: 2016-06-09
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Общее кратное элемента списка (рекурсивная функция) Очень срочно!!!

Благодарю!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version