https://leetcode-cn.com/problems/coin-lcci/solution/ying-bi-by-leetcode-solution/
方法一:动态规划
class Solution:
def waysToChange(self, n: int) -> int:
mod = 10**9 + 7
coins = [25, 10, 5, 1]
f = [1] + [0] * n
for coin in coins :
for i in range(coin, n + 1):
f[i] += f[i - coin]
return f[n] % mod
方法二:数学
class Solution:
def waysToChange(self, n: int) -> int:
mod = 10**9 + 7
ans = 0
for i in range(n//25 + 1):
rest = n - i * 25
a, b = rest // 10, rest % 10 // 5
ans += (a + 1) * (a + b + 1)
return ans % mod