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

 更新时间:2013年06月04日 17:27:11   作者:  
本篇文章是对java中一种求正整数幂的高效算法进行了详细的分析介绍,需要的朋友参考下
核心思想是
当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,用位与运算来代替求余判断奇偶,这样都要算法更加效率的多。

相关文章

  • java转树形结构工具类详解

    java转树形结构工具类详解

    这篇文章主要为大家详细介绍了java转树形结构工具类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • SpringBoot框架整合Mybatis简单攻略

    SpringBoot框架整合Mybatis简单攻略

    这篇文章主要介绍了SpringBoot框架整合Mybatis的简单攻略,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-10-10
  • java 中 String format 和Math类实例详解

    java 中 String format 和Math类实例详解

    这篇文章主要介绍了java 中 String format 和Math类实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 解决JavaMail附件名字过长导致的乱码问题

    解决JavaMail附件名字过长导致的乱码问题

    这篇文章主要介绍了解决JavaMail附件名字过长导致的乱码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • springboot操作阿里云OSS实现文件上传,下载,删除功能

    springboot操作阿里云OSS实现文件上传,下载,删除功能

    这篇文章主要介绍了springboot操作阿里云OSS实现文件上传,下载,删除功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Java字符串转驼峰格式的方法

    Java字符串转驼峰格式的方法

    在开发场景中,我们会遇到一些涉及字符串的转化,本文主要介绍了Java字符串转驼峰格式的方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Spring事务管理原理及方法详解

    Spring事务管理原理及方法详解

    这篇文章主要介绍了Spring事务管理原理及方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 基于SpringBoot整合SSMP的详细教程

    基于SpringBoot整合SSMP的详细教程

    这篇文章主要介绍了SpringBoot整合SSMP的详细教程,通过本文学习基于SpringBoot实现SSMP整合的详细代码,需要的朋友可以参考下
    2022-08-08
  • Java常见面试题之final在java中的作用是什么

    Java常见面试题之final在java中的作用是什么

    这篇文章主要介绍了Java常见面试题之final在java中的作用是什么,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 深入理解Java虚拟机_动力节点Java学院整理

    深入理解Java虚拟机_动力节点Java学院整理

    虚拟机是一种抽象化的计算机,通过在实际的计算机上模拟各种计算机功能来实现的,下面通过本文给大家分享Java虚拟机相关知识,感兴趣的朋友一起看看吧
    2017-06-06

最新评论