1、完全平方数的尾数为0,1,4,5,6,9
2.由于1+3+5+…+(2n-1) = (2n-1+1)*n/2 = n^2依据该公式可以得出完全平方式的求解过程:
public boolean isPerfectSquare(int num) {
int left = num%10;
if(!(left==0||left==1||left==4||left==5||left==6||left==9)){
return false;
}
for(int i = 1; num > 0; i=i+2){
num = num - i;
}
if(num==0)
return true;
return false;
}
3.说到这里,顺便讲讲数值分析课中学到的牛顿迭代法求开方
牛顿迭代法:
求x^2 = n ,求n;
f(x)= x^2 - n
f(x) = 0 即为解。
f(x)的导数为2*x。然后x0 = num /2.0,一只迭代,直到f(xn)趋近于0.
public static double GetSqrt(int num) {
double x = num/2.0;
while( (x*x-num) > 0.000001){
x = x - (x*x - num)*1.0/(2.0*x);
}
return x;
}