编辑代码

import java.util.HashMap;
import java.util.Map;

/**
最多几个直角三角形
https://blog.csdn.net/2301_76848549/article/details/130174893
*/
public class MainTriangleNum {
    public static void main(String[] args) {
            cal("3 3 4 5");
            cal("7 1 4 5 6 7 12 13");


    }

   // 
   private static void cal(String numStr){
                   System.out.println(numStr);

        String[] numStrArr = numStr.split("\\ ");
            int length = Integer.valueOf(numStrArr[0]);
            

            if(length!=numStrArr.length-1){
                return;
            }
             int[] intArr = new int[length];
             Map<Integer,Integer> numDoubleX = new HashMap<Integer,Integer>();
             for(int i=1;i<=length;i++){
                  intArr[i-1] = Integer.valueOf(numStrArr[i]) * Integer.valueOf(numStrArr[i]);
                  numDoubleX.put(intArr[i-1], i-1);
                  //System.out.print(intArr[i-1] + ",");
             }
             int zsNum = 0;
             Map<Integer,Integer> numDoubleXUsed = new HashMap<Integer,Integer>();

             for(int i=0; i<intArr.length-1;i++){
                 for(int j=1;j<intArr.length-1;j++){
                     Integer xn =intArr[i]+ intArr[j];
                     if(numDoubleX.get(xn)!=null && numDoubleXUsed.get(xn)==null
                          &&numDoubleXUsed.get(intArr[i])==null &&numDoubleXUsed.get(intArr[j])==null){
                        ++zsNum;
                        numDoubleXUsed.put(intArr[i], i);
                        numDoubleXUsed.put(intArr[j], j);
                        numDoubleXUsed.put(xn, numDoubleX.get(xn));
                        System.out.println(i+":" + j + ":" + numDoubleX.get(xn));

                     }
                 }
             }
            System.out.println(zsNum + "个");
            System.out.println("-----------------");
   }
}