美文网首页
拼多多-数三角形

拼多多-数三角形

作者: 葡萄肉多 | 来源:发表于2019-07-27 14:23 被阅读0次

给出平面上的n个点,现在需要你求出,在这n个点里选3个点能构成一个三角形的方案有几种。
输入描述
第一行包含一个正整数n,表示平面上有n个点(n <= 100)
第2行到第n + 1行,每行有两个整数,表示这个点的x坐标和y坐标。(所有坐标的绝对值小于等于100,且保证所有坐标不同)
输出描述
输出一个数,表示能构成三角形的方案数。
输入例子1:

4
0 0
0 1
1 0
1 1

输出例子1:

4

思路

遍历所有三点组合,三点不共线即可组成三角形
判断三点是否共线:两条线段斜率是否相等? (x1-x2) * (y1-y3) = (y1-y2) * (x1-x3)

代码

from itertools import combinations
n = int(input())
dot = []
count =0
for i in range(n):
    dot.append(list(map(int,input().split())))
index = [i for i in range(n)]
combine = list(combinations(index,3))
for j in combine:
    if (dot[j[0]][0]-dot[j[1]][0])*(dot[j[0]][1]-dot[j[2]][1])!=
       (dot[j[0]][1]-dot[j[1]][1])*(dot[j[0]][0]-dot[j[2]][0]):
        count += 1

print(count)

相关文章

网友评论

      本文标题:拼多多-数三角形

      本文链接:https://www.haomeiwen.com/subject/kzxerctx.html