分享

计算正整数平方根的整数部分(J2ME) - 网络猎狐犬

 rechardzy 2006-06-01

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多