时间限制: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<iostream>
#include<algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false); cin.tie(0);
int a, b,num1,num2;
cin >> a >> b;
if (a < b)
{
num1 = b - a;
num2 = (b - a - 360);
}
if (a > b) {
num1 = 360 - a + b;
num2 = b - a;
}
if (abs(num1) > abs(num2))
cout << num2<<endl;
else if (abs(num1) == abs(num2))
cout << abs(num1)<<endl;
else
cout << num1<<endl;
return 0;
}