简简单单一个暴力
代码如下:
n = int(input())
count = 0
i, j, k = 0, 0, 0
while i <= n:
j = 0
while j <= n // 2:
k = 0
while k <= n // 5:
if i + 2 * j + 5 * k == n:
count += 1
if i + 2 * j + 5 * k > n:
break
k += 1
j += 1
i += 1
print(count)
这道题能暴力纯属是因为范围小
在讨论区看到了很厉害的思想:
当将 n 元人民币换成1元,2元的零钱时,一共有 n // 2 + 1 种方法
若增加兑换5元的,则可以先取出 i 张5元的,此时问题就转换成了兑换1元2元的
代码如下:
n = int(input())
count = 0
i = 0
while i <= n // 5:
count += (n - 5 * i) // 2 + 1
i += 1
print(count)