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)); } }
时间: 2024-10-09 20:33:07