题目描述
大学快毕业了,最近H妹子感觉找工作很有压力,于是决定学习安卓应用开发,她要做的第一个项目是一款关于数字的游戏。不了解游戏没关系,现在有一个圆盘如下图所示:
这是H妹子设计的输入键盘(5和6的分界线在竖直方向上),用户触摸某个数字时,她的应用就应该显示这个数字。但在程序的世界里可不像我们看的那么简单。她现在只知道圆心的坐标和用户触摸的坐标,于是让你帮忙,请计算出用户触摸的数字是多少?
输入
多组输入,每行包含四个整数x、y、x1、y1、(-100 ≤ x,y,x1,y1 ≤ 100)。
x,y表示圆心坐标,x1,y1表示用户触摸的坐标。
输出
输出用户触摸的数字(一位整数)
样例输入复制
5 5 6 20 11 15 13 2 -3 -5 -4 7
样例输出复制
1 5 1
#include <iostream>
#include <cmath>
using namespace std;
const double PI = acos(-1);
int main()
{
double x, y, x1, y1;
while (cin >> x >> y >> x1 >> y1)
{
x1 -= x;
y1 -= y;
double r = sqrt(x1 * x1 + y1 * y1);
double angle = asin(y1 / r);
if (x1 < 0) angle = -angle - PI;
int c = angle * 180 / PI;
cout << (110 - c) % 360 / 40 + 1 << endl;
}
return 0;
}