分析
我是佛了,压根找不出规律
学习一下数学:。。。
ac code
class Solution {
public int numSquares(int n) {
// 1
boolean flag = false;
for(int i = 1; i <= 100; i++) {
if(n == i * i) {
flag = true;
break;
}
}
if(flag) return 1;
// 4
int temp = n;
while(temp % 4 == 0) temp /= 4;
if(temp % 8 == 7) return 4;
// 2
for(int i = 1; i <= 100; i++) {
if(i * i >= n) break;
for(int j = i; j <= 100; j++) {
if(i * i + j * j > n) break;
if(i * i + j * j == n) {
flag = true;
break;
}
}
if(flag) break;
}
if(flag) return 2;
// 3
return 3;
}
}
总结
一个数最多表示成4个平方数之和。。。