gpt4 book ai didi

math - 查找模拟时钟中时针和分针之间的角度

转载 作者:行者123 更新时间:2023-12-03 08:38:35 25 4
gpt4 key购买 nike

最近给我一个面试问题:

Given a 12-hour analog clock, compute in degree the smaller angle between the hour and minute hands. Be as precise as you can.



我想知道最简单,最易读,最精确的算法是什么。欢迎使用任何语言的解决方案(但如果您认为有必要,请稍作解释)。

最佳答案

事实证明,维基百科确实是最好的答案:

// h = 1..12, m = 0..59
static double angle(int h, int m) {
double hAngle = 0.5D * (h * 60 + m);
double mAngle = 6 * m;
double angle = Math.abs(hAngle - mAngle);
angle = Math.min(angle, 360 - angle);
return angle;
}

基本上:
  • 时针以每分钟0.5度的速度移动
  • 分针以每分钟6度的速度移动

  • 问题解决了。

    精度不是问题,因为小数部分是 .0.5,并且在 0..360的范围内,所有这些值都可以在 double中精确表示。

    关于math - 查找模拟时钟中时针和分针之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748965/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com