首页 > 代码库 > 每天一记--2014.9.11

每天一记--2014.9.11

今天仅有一个小程序:

求幂运算

  这只是比较优化的一个算法,能有效减少乘法次数,但是不是最优的

  这个只是分解得到2的幂次的乘幂

 1 package shishi; 2  3 public class QiuMi { 4  5     public static void main(String[] args) { 6         // TODO Auto-generated method stub 7         System.out.println(qiumi(3,31)); 8  9     }10     private static long qiumi(int x, int ex){11         long power=1L;//记得这里要是long型的哟,要不然计算结果不正确12         //一直作循环,求出指数的二进制的反向表示,恰好也是要进行乘幂的数13          while(ex>0){14              if((ex&1)==1)//每一次测试是否需要此底数进行乘幂15                  power*=x;16              x*=x;//每一次都求出底数的平方17              ex>>=1;18          }19          return power;20     }21 }

 

每天一记--2014.9.11