• PAT 1082 射击比赛(20)(代码+思路)


    1082 射击比赛(20 分)

    本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟。我们假设靶心在原点(0,0)。

    输入格式:

    输入在第一行中给出一个正整数 N(≤ 10 000)。随后 N 行,每行按下列格式给出:

    ID x y
    

    其中 ID 是运动员的编号(由 4 位数字组成);x 和 y 是其打出的弹洞的平面坐标(x,y),均为整数,且 0 ≤ |x|, |y| ≤ 100。题目保证每个运动员的编号不重复,且每人只打 1 枪。

    输出格式:

    输出冠军和菜鸟的编号,中间空 1 格。题目保证他们是唯一的。

    输入样例:

    3
    0001 5 7
    1020 -1 3
    0233 0 -1
    

    输出样例:

    0233 0001

    PS:

                    注意:1、距离由于涉及到开根,所以全部采用double类型

    #include <iostream>
    #include <string>
    #include<cmath>
    using namespace std;
    int main(){
    	int n, x, y;
    	double max, min, r;
    	max = 0;	//max求最大距离初始化为最小距离
    	min = sqrt(20000);		//min求最小距离初始化为最大距离
    	string id, maxid, minid;
    	cin >> n;
    	while (n--) {
    		cin >> id >> x >> y;
    		r = sqrt(x*x + y * y);		//两点间距离公式
    		if (r > max) {
    			maxid = id;
    			max = r;
    		}
    		if (r < min) {
    			minid = id;
    			min = r;
    		}
    	}
    	cout << minid << " " << maxid << endl;
    	return 0;
    }
  • 相关阅读:
    数据挖掘笔试面试(7)
    数据挖掘笔试面试(6)
    数据挖掘笔试面试(5)
    数据挖掘面试笔试(4)
    数据挖掘面试(3)
    数据挖掘面试题(2)
    学生-课程-成绩表设计
    树状结构表设计
    性能优化(1+N,list与iterator,缓存,事务)
    对象的三种状态
  • 原文地址:https://www.cnblogs.com/F-itachi/p/9974424.html
Copyright © 2020-2023  润新知