Java实现快速幂

Java实现快速幂

//平平无奇实现法
public long normalPower(long base,long power){
    
    
	long result=1;
	for(int i=0;i<power;i++){
    
    
		result*=base;
	}
	return result;
}
//快速幂实现法
public long normalPower(long base,long power){
    
    
	long result=1;
	while(power>0){
    
    
		if(power%2==0){
    
    
			//幂为偶数 直接减半 底数平方
			power/=2;
			base*=base;
		}else{
    
    
			//幂为奇数 会多出来一个数哦 记得存下来
			power/=2;
			result*=base;
			base*=base;
		}
	}
	return result;
}
//快速幂实现法 位运算优化
public long normalPower(long base,long power){
    
    
	long result=1;
	while(power>0){
    
    
		if(power & 1 ) result*=base;
		power>>=1;
		base*=base;
	}
	return result;
}

猜你喜欢

转载自blog.csdn.net/fucccck_ly/article/details/108700651