← 完整题目索引

PROJECT EULER · #0315

数根时钟

Digital Root Clocks

仅题目 · 已解决原题 ↗

0315_clocks.gif

山姆和麦克斯被要求将两个数字时钟转换成两个"数字根"时钟。
数字根时钟是逐步计算数字根的数字时钟。

当时钟输入一个数字时,它会显示该数字,然后开始计算,显示所有中间值,直到得出结果。
例如,如果时钟输入数字137,它将显示:"137"→"11"→"2",然后它会变黑,等待下一个数字。

每个数字都由一些光段组成:三个水平(上、中、下)和四个垂直(左上、右上、左下、右下)。
数字"1"由垂直右上和右下组成,数字"4"由中间水平和垂直左上、右上和右下组成。数字"8"将它们全部点亮。

时钟仅在段打开/关闭时消耗能量。
打开"2"将花费 5 次转换,而"7"将只花费 4 次转换。

Sam 和 Max 建造了两个不同的时钟。

Sam 的时钟被馈送,例如数字 137:时钟显示"137",然后面板关闭,然后打开下一个数字("11"),然后再次关闭面板,最后打开最后一个数字("2"),一段时间后关闭。
例如,对于数字 137,Sam 的时钟需要:

"137" (2 + 5 + 4) × 2 = 22 次转换("137"开/关)。
"11" (2 + 2) × 2 = 8 次转换("11"开/关)。
"2" (5) × 2 = 10 次转换("2"开/关)。
总共 40 次转换。

麦克斯的时钟工作方式不同。它不是关闭整个面板,而是足够智能,只关闭下一个数字不需要的那些部分。
对于数字 137,Max 的时钟需要:

"137"



2 + 5 + 4 = 11 次转换("137"开启)
7 个转换(关闭数字"11"不需要的段)。
"11"





0 次转换(数字"11"已正确打开)
3 个转换(关闭第一个"1"和第二个"1"的底部;
顶部部分与数字"2"相同)。
"2"



4 次转换(打开剩余片段以获得"2")
5 次转换(关闭数字"2")。
总共 30 次转换。

当然,麦克斯的时钟比萨姆的时钟消耗更少的电量。
这两个时钟输入 A = 107 和 B = 2×107 之间的所有质数。
找出 Sam 的时钟所需的转换总数与 Max 的时钟所需的转换总数之间的差异。

题解待补充

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