Найти - Пользователи
Полная версия: Общее кратное элемента списка (рекурсивная функция) Очень срочно!!!
Начало » Центр помощи » Общее кратное элемента списка (рекурсивная функция) Очень срочно!!!
1
be_smmr
Проблема с созданием рекурсивной функции для нахождения общего кратного элементов списка (для двух элементов работает)
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))
py.user.next
>>> 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
>>>
andreyrog
Благодарю!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB