static int SQRT(int nRoot) {
int nSqrt = 0; for (int i = 0x10000000; i != 0; i >>= 2) {
int nTemp = nSqrt + i;
nSqrt >>= 1;
if (nTemp <= nRoot) {
nRoot -= nTemp;
nSqrt += i;
}
}
return nSqrt;
}
=========================================================
觉得很不错。缺点就是 5开方 = 2
有没有哪位大虾 的算法支持小数的。
比如 5开方 = 2.几
支持 5.8开方的?
int nSqrt = 0; for (int i = 0x10000000; i != 0; i >>= 2) {
int nTemp = nSqrt + i;
nSqrt >>= 1;
if (nTemp <= nRoot) {
nRoot -= nTemp;
nSqrt += i;
}
}
return nSqrt;
}
=========================================================
觉得很不错。缺点就是 5开方 = 2
有没有哪位大虾 的算法支持小数的。
比如 5开方 = 2.几
支持 5.8开方的?
int nTemp = nSqrt + i;
nSqrt >>= 1;
if (nTemp <= nRoot) {
nRoot -= nTemp;
nSqrt += i;
}
}
这个for循环写得牛啊