采药
#dp[i][j]表示j只用前i个有多少方案
def money_split(x=100,p=[1,2,5]):
n=len(p)
dp=[[1 if (val==0 and j==0) else 0 for val in range(0,x+1)] for j in range(0,n+1)]
for i in range(1,n+1):
for j in range(0,x+1):
if(j-p[i-1]<0):
dp[i][j]=dp[i-1][j]
continue
dp[i][j]=dp[i-1][j]+dp[i][j-p[i-1]]
return dp[n][x]
print(money_split())

浙公网安备 33010602011771号