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;
}
登高而望。

浙公网安备 33010602011771号