记录一下四平方数和定理的解法
int numSquares(int n) {
while (0 == (n & 0x3)) {
n >>= 2;
}
if (7 == (n & 0x7)) {
return 4;
}
for (int i = sqrt(n); i > 0; --i) {
int j = sqrt(n - i * i);
if (i * i + j * j == n) {
if (0 == j) {
return 1;
}
return 2;
}
}
return 3;
}