⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 closestpoints.cpp

📁 输入一组点的x、y坐标 求解这些点之中
💻 CPP
字号:
#include <iostream.h>
#include <math.h>

void sort(int n,int *x,int *y)
{
	int t,k;
	for(int i=0;i<n-1;i++)
		for(int j=0;j<n-1-i;j++)
		{
			if(x[j]>x[j+1])
			{
				t=x[j];
				k=y[j];
				x[j]=x[j+1];
				y[j]=y[j+1];
				x[j+1]=t;
				y[j+1]=k;
			}
		}
}

int min(int d1,int d2)
{
	if(d1>d2)
		return d2;
	else 
		return d1;
}

int ClosestPoint(int a,int b,int *x,int *y)
{
	int d,d1,d2;
	if (b-a==1)
	{
		d=(int)sqrt((y[b]-y[a])*(y[b]-y[a])+(x[b]-x[a])*(x[b]-x[a]));
       	d1=ClosestPoint(a,(a+b)/2,x,y);
	    d2=ClosestPoint((a+b)/2+1,b,x,y);
	    d=min(d1,d2);
		return d;
	}

}

void main()
{
	int n;

    cout<<"请输入点的个数:";
	cin>>n;

	int *x=new int [n];
	int *y=new int [n];
	for(int i=0;i<n;i++)
	{
		cout<<"点"<<i+1<<":";
		cin>>x[i]>>y[i];
	}
	sort(n,x,y);
	int temp=ClosestPoint(1,n,x,y);
    cout<<"最近对的距离为:"<<temp<<endl;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -