- 快速设计一个a的n次幂的算法
- 利用二进制进行巧算
public class Main {
public static void main(String[] args) {
//求a的n次方
int a = 12;
int n = 10;
//m与n进行相与来判断对应的mt是否应该乘入res结果
int m = 1;
int mt = a;
long res = 1;
//m应该小于n
while(m < n) {
if((m & n) != 0) {
res *= mt;
}
m = m << 1;
mt *= mt;
}
System.out.println(res);
}
}
运行结果:
61917364224