当前位置:  编程技术>java/j2ee

一种求正整数幂的高效算法详解

    来源: 互联网  发布时间:2014-10-26

    本文导语:  核心思想是当n为偶数时,a^n = a^n/2 × a^n/2当n为奇数时,a^n = a^(n-1)/2 × a^(n-1)/2  × a代码如下: 代码如下:public class Power { public static void main(String[] args) {  System.out.println(power(5.5,5)); } private static double power(double base, int exponent) {...

核心思想是
当n为偶数时,a^n = a^n/2 × a^n/2
当n为奇数时,a^n = a^(n-1)/2 × a^(n-1)/2  × a
代码如下:
代码如下:

public class Power {
 public static void main(String[] args) {
  System.out.println(power(5.5,5));
 }
 private static double power(double base, int exponent) {
  if (exponent == 0)
   return 1;
  if (exponent == 1)
   return base;
  double result = power(base, exponent >> 1);
  result *= result;
  if ((exponent & 0x1) == 1)
   result *= base;
  return result;
 }
}

代码中还使用右移运算来代替除以2,用位与运算来代替求余判断奇偶,这样都要算法更加效率的多。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Bitsets 成员 to_ulong():返回bitset的整数表示
  • 将一串整数分割成单个整数数组,怎么做较快?
  • c#匹配整数和小数的正则表达式
  • awk的数字计算,能指为long long 64位整数么?
  • sprintf如何格式化64位的无符号整数
  • 如何使程序(字符界面)接受用户输入的一个浮点数,并把他的整数部分和小数部分分别输出。
  • 多精度整数和理性的算术加密库 MIRACL
  • 多精度整数和有理数 MPIR
  • 为什么javascript中某些字符串转换为整数不正确?
  • 如何把一个浮点数分整数和小数显示?
  • 关于linux下的C编程中,整数转换成字符的问题,谢谢各位!
  • 字符串转换为整数
  • 请问在linux下如何将整数变成char类型?
  • long类型不是64位有符号整数么??怎么还出错???
  • 如何在Linux shell下判断一个变量的值是否为整数?
  • 如何判断字符串是否为整数类型?
  • 正则文本框只能输入正整数
  • 编写一段B-Shell脚本程序,读入10个整数,打印它们的累加和
  • 谁能帮我写写shell脚本 :从键盘输入三个整数,计算其中的最小值!
  • 请教将字符类型转化为整数类型的函数,多谢!
  • c++ 一个二进制串转化为整数的解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3