首页 > 试题广场 >

魔法表

[编程题]魔法表
  • 热度指数:1942 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
时辰送给了她的女儿凛一块魔法表,但是魔法表的表针总是指向奇怪的地方,所以凛决定修理一下这块表。当前表的指针指向了一个方向 𝑛1 (在 0 度到 359 度之间,正北方向是 0 度, 正东方向是 90 度),她需要将表针调节到方向 𝑛2 。她可以选择顺时针旋转表针,也可以逆时针旋转表针,若顺时针旋转的话,角度会增大,逆时针旋转则角度会减小。当顺时针旋转 到 359 度后,若再旋转一度,则会回到 0 度。凛想要让表针旋转的角度尽量小,也就是以 最短路径旋转到正确的方向,请你告诉她应该如何旋转。 当有多种旋转方式能够旋到正确的方向,且旋转过的角度相同时,凛会选择顺时针旋转。

数据范围:

输入描述:
第一行包含一个整数𝑛1 ,表示表针当前的方向。

第二行包含一个整数𝑛2 ,表示表针应该指向的正确方向。


输出描述:
若需要顺时针旋转𝑥度,则输出𝑥;

若需要逆时针旋转𝑥度,输出−𝑥。
示例1

输入

315
45

输出

90
示例2

输入

45
270

输出

-135
输入的读取完全扯淡,明明是一行以空格分开的两个数,害我调试了好长时间。
def solve(n1,n2):
    if n2>=n1:
        ans1 = n2-n1
        ans2 = -(360-n2+n1)
    else:
        ans1 = n2-n1
        ans2 = 360-n1+n2
    if abs(ans1)>abs(ans2):
        return ans2
    else:
        return ans1
if __name__=='__main__':
    current,good = list(map(int,input().split()))
    print(solve(current,good))


发表于 2019-09-15 15:37:41 回复(0)