给出n个点,判断能组成几个三角形。
输入:
N,点的数量
x,y,点的坐标
.........
解题思路:我想了很久,只知道暴力搜索,有更好的思路求分享。遍历点坐标,如果三点不共线,则计数+1。
上代码:
import java.util.Scanner;
/**
* 判断n个点能组成多少个三角形
* @author hsy
*
*/
public class PinDuoDuo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] x = new int[n];
int[] y = new int[n];
for(int i=0;i<n;i++){
x[i] = sc.nextInt();
y[i] = sc.nextInt();
}
int delete = 0;
int count = 0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
if(i!=j && j!=k && i!=k){
if( (x[k]-x[j])*(y[i]-y[j]) != (x[i]-x[j])*(y[k]-y[j]) ){
count++;
}
}
}
}
}
count /= 6;
System.out.println("计数"+count);
}
}