我有一个 c 作业问题困扰着我,如果有人能帮助我指出正确的方向,我将不胜感激。
如果我在模拟手表上有两个分钟点,例如 t1(55 分钟)和 t2(7 分钟),我需要计算两点之间的最短步数。
到目前为止我得出的是这两个等式:
-t1 + t2 + 60 =
-55 + 7 + 60
= 12
t1 - t2 + 60 =
55 - 7 + 60
= 108
12 is lower then 108, therefore 12 steps is the shortest distance.
如果我比较两个结果并使用最低的结果,这似乎工作正常。但是,如果我选择另外两个点,例如让 t1 = 39 和 t2 = 34 并将它们代入等式:
-t1 + t2 + 60 = -39 + 34 + 60 = 55
t1 - t2 + 60 = 39 - 34 + 60 = 35
35 is lower then 55, therefore 35 steps is the shortest distance.
但是,35 不是正确答案。 5 步是最短距离 (39 - 34 = 5)。
我的脑子有点炸了,我知道我漏掉了一些简单的东西。谁能帮忙?
最佳答案
你想要的是加法和减法模 60。检查 %
运算符。确保正确处理底片。
关于algorithm - 模拟时钟的最短路径算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214907/