Форум сайта python.su
Проблема с созданием рекурсивной функции для нахождения общего кратного элементов списка (для двух элементов работает)
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))
Офлайн
>>> 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)
Онлайн
Благодарю!
Офлайн