algorithm - 模拟时钟的最短路径算法

标签 algorithm math

我有一个 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)。

我的脑子有点炸了,我知道我漏掉了一些简单的东西。谁能帮忙?

Analog clock face

最佳答案

你想要的是加法和减法模 60。检查 % 运算符。确保正确处理底片。

关于algorithm - 模拟时钟的最短路径算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214907/

相关文章:

algorithm - 生成从 0 到 n 的整数的无状态伪随机排列?

objective-c - 如何在 Objective-C 中将大数相乘?

c++ - 是否可以为通用元素列表创建排序?

java - 如何在 java 中表示位 vector 以便我可以在 O(log n) 中搜索

algorithm - 最小化二分图中的交叉数

algorithm - 1 位作者,M 位读者消费同一个项目

c# - 生成高斯数

javascript - js数学方程之谜

c++ - 计算 3d 中线段之间的垂直距离和角度距离

相当于矩阵变换的高质量四元数数学