您的位置:首页 > 其它

蛮力法之最近对问题(C实现)

2015-11-07 21:02 295 查看
#include <stdio.h>
#include <math.h>

/*
我们可以避免求平方根,窍门是忽略平方根函数,而只比较(x[i]-x[j])^2+(y[i]-y[j])^2的值本身。
*/

int BruteForceClosestPoints(int n) {
int d=1000, i, j, t, x[100], y[100];
for (i= 1; i < n + 1; i++) {
printf("输入x[%d]和y[%d]:", i, i);
scanf("%d%d", &x[i], &y[i]);
}
for (i = 1; i < n; i++)
for (j=i+1; j < n+1; j++) {
t = (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
if (d*d > t) {
d = t;
}

}
return sqrt(d);
}

int main() {
int n, p[100];
printf("输入点的个数:");
scanf("%d", &n);
printf("最近的距离为:%d\n",BruteForceClosestPoints(n));
return 0;
}

运行效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: