我是递归新手,想知道下面代码的逻辑是什么。
问题是hackerrank上的powerSums问题:
https://www.hackerrank.com/challenges/the-power-sum/problem?isFullScreen=true
def powerSum(X, N, current = 1):
pw = pow(current, N)
if pw > X:
return 0
elif pw == X:
return 1
else:
return powerSum(X, N, current+1) + powerSum(X-pw, N, current+1)
此外,我一直试图将答案转换为一个嵌套的列表或一组值,但似乎无法找到答案。怎么能做到?
例如,对于X=5和N=2的情况,我想要得到的解是:
[(10),(6,8),(1,3,4,5,7)]。