蠻力法之最近對問題(C實現)
阿新 • • 發佈:2019-01-02
#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; }
執行效果圖