每天一记--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 }