用C++写 O(n^2)求解给定 n 个坐标,求其中 3 个坐标能表示一个等腰三角形的组数
时间: 2023-05-25 19:03:01 浏览: 104
解决关于等腰三角形问题的C++程序
5星 · 资源好评率100%
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 输入点的个数
int x[n], y[n]; // 存储点的横纵坐标
for (int i = 0; i < n; i++) {
scanf("%d%d", &x[i], &y[i]);
}
int cnt = 0; // 记录等腰三角形的组数
// 枚举三个点
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
// 判断能否构成等腰三角形
if ((x[i] - x[j]) * (y[i] - y[k]) == (x[i] - x[k]) * (y[i] - y[j])) {
cnt++;
}
}
}
}
printf("%d\n", cnt);
return 0;
}
阅读全文