计算两向量距离

平面直角坐标系下两点A(x1,x2)、B(y1,y2),它们之间的欧氏距离为:sqrt((x1-y1)*(x1-y1)+(x2-y2)*(x2-y2))。扩展到N维空间,每个点的坐标有N维,例如点A(x1,x2,......,xN),类似地也可以计算两点之间的欧氏距离。编程计算N位向量的欧氏距离。

目内容:

平面直角坐标系下两点A(x1,x2)、B(y1,y2),它们之间的欧氏距离为:sqrt((x1-y1)*(x1-y1)+(x2-y2)*(x2-y2))。扩展到N维空间,每个点的坐标有N维,例如点A(x1,x2,......,xN),类似地也可以计算两点之间的欧氏距离。编程计算N位向量的欧氏距离。

输入格式:

首先输入N;

然后输入第一个点的N位坐标,取整数值,用空格分隔;

再输入第二个点的N位坐标,取整数值,用空格分隔。

输出格式:

输出浮点数,保留两位小数。

输入样例:

2

3 4

5 6

输出样例:

2.83

#include
#include
#include
using namespace std;
float distance(int* p1, int* p2,int size)
{
	float dis(0.0);
	for (int i = 0; i < size; i++)
	{
		dis = sqrt(dis * dis + (p1[i]-p2[i])*(p1[i]-p2[i]));
	}
	return dis;
}


int main()
{
	float dis(0);
	int N;
	cin >> N;
	int* p1 = new int[N];
	int* p2 = new int[N];
	for (int i = 0; i < N; i++)
	{
		int temp;
		cin >> temp;
		p1[i] = temp;
	}
	for (int j = 0; j < N; j++)
	{
		int temp;
		cin >> temp;
		p2[j] = temp;
	}
	dis = distance(p1, p2,N);
	cout << setiosflags(ios::fixed);
	cout << setprecision(2) << dis;
	delete[]p1, p2;
	return 0;
}

你可能感兴趣的:(学习笔记,c++)