据说是校招的一道编程题,解题思路很简单,只需要一点基础的数学知识,但是需要注意测试样例有多组。
只需要简单的计算欧氏距离,与炮台射程进行比较即可。
代码实现如下:
#include <iostream>
using namespace std;
int main()
{
int count;
double x[4];
double y[4];
double R;
while(cin >> R){
count = 0;
cin >> x[0] >> y[0] >> x[1] >> y[1] >> x[2] >> y[2] >> x[3] >> y[3];
for(int i = 0; i < 3; i++){
if((x[i] - x[3])*(x[i] - x[3]) + (y[i] - y[3])*(y[i] - y[3]) <= R*R)
count++;
}
cout << count << "x" << endl;
}
return 0;
}
一开始做的时候以为每次只有一组输入,因此反复报错。这里需要注意的就是count的清零操作最好放在while里面。