python - 蛮力解决方案返回 Project Euler 问题 31 的错误答案
问题描述
我遇到了Project Euler 问题 31的问题。正确答案是 73,682,我的答案是 73,681。这是问题所在:
在英国,货币由英镑 (£) 和便士 (p) 组成。一般流通的硬币有八种:1便士、2便士、5便士、10便士、20便士、50便士、1英镑(100便士)和2英镑(200便士)。
可以通过以下方式赚取 2 英镑:1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p。
使用任意数量的硬币可以通过多少种不同的方式制作 2 英镑?
我的代码:
counter = 0
for a in range(3):
for b in range(5):
if 100 * a + 50 * b > 200:
break
for c in range(11):
if 100 * a + 50 * b + 20 * c > 200:
break
for d in range(21):
if 100 * a + 50 * b + 20 * c + 10 * d > 200:
break
for e in range(41):
if 100 * a + 50 * b + 20 * c + 10 * d + 5 * e > 200:
break
for f in range(101):
if 100 * a + 50 * b + 20 * c + 10 * d + 5 * e + 2 * f <= 200:
counter += 1
print(counter)
解决方案
问题是您的代码没有考虑您只有 2 英镑硬币的情况。您只需将变量初始化counter
为 1 即可解决此问题。
推荐阅读
- sql-server - CloudSQL-SQLServer 中的 AlwaysOn 功能
- typescript - 提供类型时,在打字稿中分配之前使用变量
- c - 嵌入式系统中的 C 动态大小的 IO 包
- python - Python我正在尝试制作一个骰子滚轮,它可以添加总数并滚动多种骰子
- php - 为什么 xampp php 无法加载新复制的扩展?
- python-3.x - 使用带有类型传输的 Python 泛型类型 [高级 Python 泛型类型]
- mysql - 在 typeorm 中查找给定半径内的地方
- c++ - 为什么 add_library() 创建一个代码块项目而不是一个 .a 文件?
- windows - Wordpress 多站点...警告:fopen(F:\htdocs/wp-content/plugins/1626892348):无法打开流:Windows 10 上的~Apache 中的权限被拒绝
- javascript - querySelectorAll - 在两个不同的下拉菜单中隐藏选项的多个 ID