高效求a的n次幂的算法
Posted xiaoyh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高效求a的n次幂的算法相关的知识,希望对你有一定的参考价值。
代码:
public class A的N次幂 { public static void main(String[] args) { int a = 2; int n = 60; long t = System.nanoTime(); // 纳秒 System.out.println(pow0(a, n)); System.out.println("pow0()所花时间:"+(System.nanoTime()-t)+"ns"); t = System.nanoTime(); System.out.println(pow(a, n)); System.out.println("pow()所花时间:"+(System.nanoTime()-t)+"ns"); } // O(N) private static long pow0(int a,int n){ long res = 1; for(int i=0;i<n;i++){ res *= a; } return res; } private static long pow(int a,int n){ if (n==0) { return 1; } long res = a; int ex = 1; while((ex<<1)<=n){ res = res * res; ex <<=1; } return res*pow(a, n-ex); } }
结果:
以上是关于高效求a的n次幂的算法的主要内容,如果未能解决你的问题,请参考以下文章