
急求北大ACM 1046 题目的翻译(题意)及其答案(已经ac的)!
1个回答
展开全部
//大意是,先输入16组标准的点,(三维的坐标)。然后接下来一直输入坐标上的点,直到输入为 (-1,-1,-1)。每输入一个点,就输出16个点中与之距离最近的点的坐标。
#include<iostream>
#include<cmath>
using namespace std;
typedef struct value{
double R;
double G;
double B;
}V;
int main()
{
int i = 0;
int num=1;
V standard[16];
double result;
double temp;
for( i =0 ; i < 16 ; i++ )
{
cin >> standard[i].R >> standard[i].G >> standard[i].B;
}
V incolor;
while(cin >> incolor.R >> incolor.G >> incolor.B && incolor.R!=(-1))
{
num=0; i=0;
result = sqrt ( (standard[0].R-incolor.R)*(standard[0].R-incolor.R) +
(standard[0].G-incolor.G)*(standard[0].G-incolor.G) +
(standard[0].B-incolor.B)*(standard[0].B-incolor.B) ) ;
for( i = 1 ; i < 16 ; i++ )
{
temp = sqrt( (standard[i].R-incolor.R)*(standard[i].R-incolor.R) +
(standard[i].G-incolor.G)*(standard[i].G-incolor.G) +
(standard[i].B-incolor.B)*(standard[i].B-incolor.B) );
if(temp < result)
{
result = temp;
num = i;
}
}
cout << "(" << incolor.R <<","<< incolor.G <<","<< incolor.B<<")"
<<" maps to "<< "(" << standard[num].R <<","<< standard[num].G <<","<< standard[num].B<<")\n";
}
return 0;
}
#include<iostream>
#include<cmath>
using namespace std;
typedef struct value{
double R;
double G;
double B;
}V;
int main()
{
int i = 0;
int num=1;
V standard[16];
double result;
double temp;
for( i =0 ; i < 16 ; i++ )
{
cin >> standard[i].R >> standard[i].G >> standard[i].B;
}
V incolor;
while(cin >> incolor.R >> incolor.G >> incolor.B && incolor.R!=(-1))
{
num=0; i=0;
result = sqrt ( (standard[0].R-incolor.R)*(standard[0].R-incolor.R) +
(standard[0].G-incolor.G)*(standard[0].G-incolor.G) +
(standard[0].B-incolor.B)*(standard[0].B-incolor.B) ) ;
for( i = 1 ; i < 16 ; i++ )
{
temp = sqrt( (standard[i].R-incolor.R)*(standard[i].R-incolor.R) +
(standard[i].G-incolor.G)*(standard[i].G-incolor.G) +
(standard[i].B-incolor.B)*(standard[i].B-incolor.B) );
if(temp < result)
{
result = temp;
num = i;
}
}
cout << "(" << incolor.R <<","<< incolor.G <<","<< incolor.B<<")"
<<" maps to "<< "(" << standard[num].R <<","<< standard[num].G <<","<< standard[num].B<<")\n";
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询