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

拼多多-数三角形

作者: 葡萄肉多 | 来源:发表于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