Python 获取powersum问题的所有可能组合
我试图找到所有的数字组合,它们构成了幂和。下面是我的代码,它在找到第一个组合后返回 `代码:Python 获取powersum问题的所有可能组合,python,recursion,dynamic-programming,Python,Recursion,Dynamic Programming,我试图找到所有的数字组合,它们构成了幂和。下面是我的代码,它在找到第一个组合后返回 `代码: def powerSum(targetSum, N): def helper(x,n,c): if pow(c,n)==x: return [c] if pow(c,n)>x: return None l = helper(x,n,c+1) r = helper(x-pow(c,
def powerSum(targetSum, N):
def helper(x,n,c):
if pow(c,n)==x:
return [c]
if pow(c,n)>x:
return None
l = helper(x,n,c+1)
r = helper(x-pow(c,n),n,c+1)
if l!=None or r!=None:
if l==None:
return r+[c]
else:
return l
return helper(targetSum,N,1)
print(powerSum(100,2))
有人能帮我把所有可能的组合都还给我吗
例子:
如果输入为targetSum=100且N=2,则输出应为三个可能组合列表的列表=[[10],[6,8][1,3,4,5,7]]
而我的输出仅为[10]请重新考虑返回类型:
def powerSum(targetSum,N):
def辅助设备(x、n、c):
如果功率(c,n)=x:
返回[[c]]
如果功率(c,n)>x:
返回[]
l=辅助对象(x,n,c+1)
r=辅助(x-pow(c,n),n,c+1)
对于r中的_r:
l、 追加([c]+\r)
返回l
返回帮助器(targetSum,N,1)
打印(powerSum(100,2))
很好的解决方案。是否希望添加注释以详细说明原始代码问题?@DanielHao谢谢。我想我做到了——它基本上与OP相同,只是返回类型不同(因此对这些类型的处理也不同)。非常感谢您的解决方案,我对递归以及如何处理返回类型等都有点陌生。我很乐意接受一个建议来提高自己