← 完整题目索引

PROJECT EULER · #0828

数字挑战

Numbers Challenge

仅题目 · 已解决原题 ↗

利用若干给定的数凑出一个目标数,是一类常见的趣味数学问题。本题会给出六个数和一个目标数。

例如,给出六个数 2346725,目标数为 211,一种解法是:

211=(3+6)×25(4×7)÷2

这个解法使用了全部六个数,但并不要求必须全部使用。另一种不使用 7 的解法为:

211=(252)×(6+3)+4

定义一种解法的得分为它所使用的数的和。在上述例题中,两种解法的得分分别为 4740。事实上,这道题不存在得分小于 40 的解法。

组合这些数时,必须遵守下列规则:

  • 每个给定的数至多使用一次。
  • 只允许使用四种基本算术运算:+×÷
  • 所有中间结果都必须为正整数。例如,即使最终答案是整数,也不允许出现子表达式 (3÷2)

附件 number-challenges.txt 包含 200 道题,每行一道,格式为:

211:2,3,4,6,7,25

其中,冒号前的数是目标数,其余以逗号分隔的数是可供使用的数。

将这些题目依次编号为 1、2、……、200,令 sn 为第 n 题所有解法中的最低得分。例如,s1=40,因为文件中的第一题就是上面的例题。注意,并非所有题目都有解;无解时,取 sn=0

n=12003nsn,答案对 1005075251 取模。

题解待补充

这道题的题目已收录,解题思路、代码和答案将在后续补充。