给出时针和分针之间角度的绝对值。 我们需要找到满足给定角度的午夜(包括)到中午(不包括)的所有有效时间值(小时和分钟,非负整数)。
值得注意的是,如果该值的时钟指针与给定的角度之间的角度相差小于1/120度,则认为时间值有效。 此外,分针的移动影响时针。也就是说,每分钟,它移动两个连续小时标记之间的角距离的1/60。
那么如何以良好的方式解决这个问题。我写下了一段代码,其中包括if和else。所以只是想知道是否有找到所有这些的干净方法。
示例:如果A = 30则可以是:
01:00
11:00
答案 0 :(得分:1)
我会在伪代码中尝试一个想法
for minuteHand in [0,59]:
minuteAngle=angle(minuteHand) // gives the angle respect to the 0
hourAngle1 = minuteAngle+A //Should be modified to account for the precision
hourAngle2 = minuteAngle-A
if isValidTime(minuteAngle,hourAngle1): // check if the two hands express a valid time at this angle
found a valid time
if isValidTime(minuteAngle,hourAngle2):
found a valid time
答案 1 :(得分:1)
Codechef目前正在进行竞争的问题。
答案 2 :(得分:0)
我真的不明白你的问题是什么。 "如何解决这个问题?"给出一个简短的答案有点模糊。但是,我要做的第一件事是将所有值转换为相同的单位。 30度对应于整圆的1/12,即在一分钟内,一只手移动6度(整圈的1/60),另一只手移动1/2度(整整一小时30度)。所以你基本上是想解决
Employee
其中Name
该模数部分使得直接解决方案变得有点繁琐,但您只需为Employee
的任何值运行循环即可找到解决方案。希望这可以帮助。如果没有,也许您应该考虑展示一些代码......
答案 3 :(得分:0)
现在不应该回答这个问题,因为它来自由codechef托管的LOng竞赛。所以,对于像我们这样想要自己解决这个问题的爱好者来说,这会破坏这个问题。