给定一个正整数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))