Link: https://leetcode.com/problems/ways-to-express-an-integer-as-sum-of-powers/description/
## 思路
需要注意的是它需要the number of ways ```n``` can be expressed as the sum of the xth power of **unique** positive integers
所以4 = 1+1+1+1 是不可能发生的 只能用一个1
而且不讲求顺序 所以backtracking也不可以
如果第11行改成```for i in range(power, n+1)``` 那么就是允许一个组合里可以有很多同一个数字的可能性 如果反过来 才是不允许
## Code
```python=
class Solution:
def numberOfWays(self, n: int, x: int) -> int:
powers = []
for i in range(1, 301):
if pow(i, x)>n: break
powers.append(pow(i, x))
dp = [0]*(n+1)
dp[0] = 1
for power in powers:
for i in range(n, power-1, -1):
dp[i] = (dp[i]+dp[i-power])%(1e9+7)
dp[i] = int(dp[i])
return dp[n]
```