hihoCoder #1752 方向

方向

提交网站:https://hihocoder.com/problemset/problem/1752

时间限制:20000ms

单点时限:1000ms

内存限制:256MB


描述
 

我们可以用 0..359 之间的角度来描述一个方向,现在给出两个方向 a , b,你需要求出,从 a 转到 b 最少需要的角度。

例如,从 70° 转到 180°,可以转 110°,也可以转 -250°

又比如,从315°转到45°,可以转90°,也可以转 -270°

定义一个角度 a 比另一个角度 b 小,当且仅当 a 的绝对值小于 b

例如:180°-220°小,-45°80°小。

特别的,如果两个角度的绝对值相同,我们规定正的角度比较小,比如180°小于-180°

 

输入

第一行两个 0 359之间的整数 a , b

 

输出

输出最少需要转的角度

额外的样例

样例输入1

样例输出1

180 270

90

样例输入2

样例输出2

45 270

-135

 

样例输入

315 45

 

样例输出

90

代码如下:

#include<stdio.h>
#include<math.h>
main()
{
  int a,b;
  scanf("%d%d",&a,&b);
  int temp=0;
  if(a<b)
  {
    temp=a;
    a=b;
    b=temp;
    temp=1;
  }
  int x=a-b,y=-(360-a+b);
  if(fabs(x)>fabs(y))
  {
      if(temp==0)y*=-1;
      printf("%d",y);
  }
  else if(fabs(x)<=fabs(y))
  {
    if(temp==0)x*=-1;
    printf("%d",x);
  }
  return 0;
}

  

posted @ 2020-04-17 17:14  X-Yunner  阅读(159)  评论(0)    收藏  举报