给定一个正整数N,需要求出所有可能的整数分解式子。

可以使用递归的方法来解决这个问题。在递归过程中,每次考虑当前剩余数字中最小的数字,并将其从剩余数字中减去。如果剩余数字为0,则输出当前分解式子。如果剩余数字大于0,则对剩余数字继续递归。

代码如下:

def dfs(n, start, path,res):
    if n == 0:
        res.append(path)
        return
    for i in range(start, n + 1):
        dfs(n - i, i, path + [i], res)

def integer_decomposition(n):
    res = []
    dfs(n, 1, [], res)
    res.sort()
    return res

n = 7
print(integer_decomposition(n))

更多推荐