时钟板上最小距离为2次

时间:2013-04-06 22:53:57

标签: algorithm distance

在时钟板上给出2次(int),我必须计算它们之间的最小距离。

enter image description here

例如 -

d(12,1) = 1 //not 11 
d(3,5) = 2 
d(10,10) = 0

最快的方法是什么?

3 个答案:

答案 0 :(得分:2)

你有什么尝试?

Dim dif = Math.Abs((t2 + 6) Mod 12 - (t1 + 6) Mod 12)

答案 1 :(得分:2)

如果ab来自112

min(abs(a - b), 12 - abs(a - b))

答案 2 :(得分:1)

纯算术(没有任何库):

int d(int first, int second){
   int temp = first - second;
   temp < 0? temp *=-1 :temp ;

   int distance = temp > 6? 12-temp:temp;

   return distance;
}