长春网站建设方案优化,深圳手机微商网站设计联系电话,微信小程序建设公司,成都网页制作公司在线咨询目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题#xff08;A卷B卷#xff09;》。
… 目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
输入N个互不相同的二维整数坐标求这N个坐标可以构成的正方形数量。[内积为零的的两个向量垂直]。
二、输入描述
第一行输入为NN代表坐标数量N为正整数。 之后的N行输入为坐标x y以空格分隔。
xy为整数-10x,y10
三、输出描述
输出可以构成的正方形数量。
四、Java算法源码
package com.guor.od;import java.util.*;public class OdTest {public static void main(String[] args) {Scanner sc new Scanner(System.in);// 坐标数量int N sc.nextInt();// 3个坐标构不成正方形if (N 3) {System.out.println(0);return;}// 存储坐标x y的集合Listint[] list new ArrayList();for (int i 0; i N; i) {// 坐标x yint[] arr new int[2];arr[0] sc.nextInt();arr[1] sc.nextInt();list.add(arr);}int count 0;MapInteger, Integer map new HashMap();for (int i 0; i list.size() - 1; i) {for (int j i 1; j list.size(); j) {int dist getLength(list.get(i), list.get(j));map.put(dist, map.getOrDefault(dist, 0) 1);}}for (int v : map.values()) {count v * (v - 1) * (v - 2) * (v - 3) / 24;}System.out.println(count);}public static int getLength(int[] a, int[] b) {int x a[0] - b[0];int y a[1] - b[1];return x * x y * y;}
}五、效果展示
1、输入
4 0 0 1 2 3 1 2 -1
2、输出
1
3、说明 下一篇华为OD机试 - 荒岛求生 - 栈StackJava 2023 B卷 100分
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。