首页 > 代码库 > 10、计算幂方

10、计算幂方

package jianzhi_offer;

import java.util.Stack;

public class Pow_a {
	//加快了时间效率
	public static long Pow_a(int n,int a){
		//或者与1做位运算,然后对数据进行向右移动,向右移动的时候注意要转换为无符号数,同时注意考略无符号数和有符号的幂是互为倒数的,还有double的判断等于号等细节问题,还有非法输入问题等。
		if(n%2==1){
			if(n==1)
				return a;
			else
				return Pow_a((n-1)/2,a)*Pow_a((n-1)/2,a)*a;
		}else{
			if(n==0)
				return 1;
			else
				return Pow_a(n/2,a)*Pow_a(n/2,a);
		}
		
	}
	public static void main(String args[]){
		
		System.out.println(Pow_a(13,2));
	}

}

 

10、计算幂方