简体   繁体   English

如何使用递归函数解决这个问题

[英]How to solve this problem by using recursive function

Write a recursive function that takes as input a list of integer numbers and returns the multiples of the numbers.编写一个递归函数,将整数列表作为输入并返回这些数字的倍数。

numbers_multiples = {}
lst_multiples = []
    
def multiples(*numbers):
    lst_numbers = list(numbers)
    lst_numbers.sort()
    n = lst_numbers[-1]
    for k in lst_numbers:
        for i in range(1,n+1):
            if k % i == 0:
                lst_multiples.append(i)
                x = lst_multiples.copy()
                numbers_multiples[k] = x
        lst_multiples.clear()
    return numbers_multiples

msg = multiples(10,20,8,4,6)
print(msg)

That's my solution without using recursive.这是我不使用递归的解决方案。

This is one approach这是一种方法

def recurMultiples(*numbers):
    nmbrs = list(numbers)
    def find_mults(n, d):
        d[n] = [z for z in range(1, n+1) if n%z == 0]
        return d
    nmbrs = list(numbers)
    rslt = {}        
    while nmbrs:
        rslt = find_mults(nmbrs.pop(), rslt)
    return rslt

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM