当前位置: 首页 > article >正文

自己看---华为od--构成正方形的数量

题目描述
输入N个互不相同的二维整数坐标,求这N个坐标可以构成的正方形数量。[内积为零的的两个向量垂直]

输入描述
第一行输入为N,N代表坐标数量,N为正整数。N <= 100

之后的 N 行输入为坐标x y以空格分隔,x,y为整数,-10<=x, y<=10

输出描述
输出可以构成的正方形数量。

用例1
输入
3
1 3
2 4
3 1
输出
0

用例2
输入
4
0 0
1 2
3 1
2 -1
输出
1

N=int(input())
coords=[input() for _ in range(N)]
count=0
for i in range(N):
    x1,y1=map(int,coords[i].split())
    for j in range(i+1,N):
        x2,y2=map(int,coords[j].split())
        #现在有了两个点的坐标就有了一条边,然后我门可以根据这条边来推导出
        #另外四个点的坐标
        x3 = x1-(y1-y2)
        y3 = y1+(x1-x2)
        x4 = x2-(y1-y2)
        y4 = y2+(x1-x2)
        #如果这两个坐标在给定坐标内,就构成一个正方形,否则不构成
        if f'{x3} {y3}' in coords and f'{x4} {y4}' in coords:
            count+=1
        x5 = x1+(y1-y2)
        y5 = y1-(x1-x2)
        x6 = x2+(y1-y2)
        y6 = y2-(x1-x2)
        if f'{x5} {y5}' in coords and f'{x6} {y6}' in coords:
            count+=1
#因为一个正方形会被反复计算4次,所以最终结果需要//4
count=count//4
print(count)

http://www.kler.cn/a/299425.html

相关文章:

  • AI-System 学习
  • PCA9685 一款由 NXP Semiconductors 生产的 16 通道、12 位 PWM(脉宽调制)控制器芯片
  • 【自学嵌入式(7)天气时钟:WiFi模块、OLED模块、NTP模块开发】
  • 春节期间,景区和酒店如何合理用工?
  • 智能汽车网络安全威胁报告
  • 21.2-工程中添加FreeRTOS(掌握) 用STM32CubeMX添加FreeRTOS
  • 神经网络的可解释性理论及工具
  • timedatectl /date /hwclock 命令
  • Rust使用之【宏】
  • Vue(7)——工程化开发
  • 基于SpringBoot+Vue的学生成绩管理系统
  • [苍穹外卖]-04菜品管理接口开发
  • Node.js入门与生态全解析:包管理与构建工具详解
  • 从代码层面说算子链断链的方式
  • 【OJ刷题】双指针问题
  • 101 个 React 技巧和窍门
  • TP发邮件的功能如何实现?tp框架发送邮件?
  • 在Ubuntu上部署 Misskey 服务器
  • Spring 源码解读:使用FactoryBean创建复杂对象的实现
  • RK3576芯片在智能家居里中型智慧屏产品的应用方案分析
  • 不需要安装谷歌插件,使用使用IDEA自带的插件debug调试vue前端代码
  • 索尼发布新款PS5 Pro主机 算力与定价齐飞 9成玩家感叹“价格贵”
  • perforce 操作记录
  • 大模型解码Decoding方法总览
  • 对云原生架构的理解和思考
  • 鸿蒙(API 12 Beta6版)GPU加速引擎服务【空域GPU超分】