我需要编写一个递归函数,该函数查找长度为n的列表中最不常见的多个元素。
我的代码:

import random

def random_num(n):
    return [random.randint(-20,20) for i in range(n)]

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)

def my_nok(n,m):
    return (n/gcd(n,m))*m


第一个问题是:我的函数仅使用两个参数,而不使用整个列表。

第二个问题:我需要唯一的函数来查找最小公倍数(我的代码为此包含两个)。

最佳答案

您需要通过列表重现内容,例如以下内容。如果列表中有2个元素,请执行常规的LCM。如果更长,则在列表尾部重复,然后对该结果和第一个元素进行LCM处理。

def lcm(in_list):
    if len(in_list) == 2:
        # Do your normal LCM computation here
    else:
        return lcm([in_list[0], lcm(in_list[1:]))

关于python - n个数的最小公倍数,使用递归,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37599568/

10-11 06:35