java語言中判斷一個數是否是平方和可以采用以下方法:
/** * 判斷一個數是否是兩個數的平方和 * @param n 需要進行判斷的數 * @return 如果存在兩個整數,他們的平方和等于n,返回true,否則返回false */ public static boolean judgeSquareSum(int n) { if (n< 0) { return false; } int left = 0; int right = (int) Math.sqrt(n); while (left<= right) { int sum = left * left + right * right; if (sum == n) { return true; } else if (sum >n) { right--; } else { left++; } } return false; }
首先,判斷需要判斷的數n是否為負數。如果是負數,則一定不是平方和。
選取兩個指針left和right,left初始為0,right初始為n的平方根,即最大可能的平方和值。利用循環依次判斷left和right位置的值平方和sum是否等于n:
- 如果sum等于n,意味著left和right位置的值就是能夠滿足要求的兩個整數平方和,直接返回true。
- 如果sum大于n,說明right位置的值過大,需要將right左移一位。
- 如果sum小于n,說明left位置的值過小,需要將left右移一位。
如果經過整個循環,都沒有找到滿足要求的兩個整數,則直接返回false。
上一篇app和php
下一篇ajax 數組轉json