https://leetcode-cn.com/problems/coin-lcci/
class Solution(object):
def waysToChange(self, n):
"""
:type n: int
:rtype: int
"""
if n==0:
return 1
coins=[1,5,10,25]
#dp[i][j]表示用前i个面值的硬币凑j的方法,i取0,1,2,3
dp=[[0]*(n+1)]*len(coins)
#dp[0][j]=1
for j in range(n+1):
dp[0][j]=1
#dp[i][0]=1
#dp[i][j]=dp[i-1][j]+dp[i][j-coins[i]]
for i in range(1,len(coins)):
dp[i][0]=1
for j in range(1,n+1):
dp[i][j]=dp[i-1][j]
if j>=coins[i]:
dp[i][j]+=dp[i][j-coins[i]]
return (dp[len(coins)-1][n])%1000000007