计算正整数平方根的整数部分(J2ME)

    技术2022-05-11  69

    MIDP1.0不能使用浮点数,因此这个算法只能计算正整数开方的整数部分,且算法中没有任何乘法和除法运算,只有加减运算.

    算法原理:1+3+5+...+(2n-1) = n^2根据公式我们要求X的开方,只需让X-1,X-3,X-5....直到X为负数,这时所有成功的次数就是平方根的整数部分.

    /**  * @todo 计算正整数平方根的整数部分  * @param x 要求平方根的正整数  * @return 平方根的整数部分    **/ private int sqrt(int x) {  int result = 0,j = 3;  x--;  while(x >= 0)  {   x -= j;   j += 2;   result++;  }  return result; }


    最新回复(0)