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

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;
 }

阅读更多
文章标签: j2me 算法
个人分类: J2ME
上一篇基于Bresenahams的画直线算法(J2ME版)
下一篇CLDC1.1的新特性(转)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭