快速幂的运算

快速幂的运算

package _6数学问题;

public class 快速幂的运算 {
public static void main(String[] args) {
	int cifang=4;
	int number=3;//3*3*3*3
	long a=ex(number,cifang);
	System.out.println(a);
}
private static int ex(int number, int cifang) {
	// TODO Auto-generated method stub
	if(cifang==0) {
		return 1;
	}
	if(cifang==1) {
		return number;
	}
	int temp=number;//的一次方
	int res=1;
	int exponent=1;//指数乘方
	while((exponent<<1)<number) {
		temp=temp*temp;
		exponent=exponent<<1;//指数翻一倍
	}
	res *=ex(number,cifang-exponent);
	return res*temp;
}
}

猜你喜欢

转载自blog.csdn.net/weixin_45952706/article/details/107801129