首页 > 代码库 > 任意数的整数次方
任意数的整数次方
有如下公式:
因此我们求解a^n时,可以先求解r=a^(n/2)
比如求解r=3^5,先求解3^(5-1)/2=3^2=9,因此3^5=9×9×3=243
注:我们需判断a是否为零,n的正负情况
代码:
/** * Created by wuchao on 17-3-29. */import java.util.*;public class test { public static int array[] = {1,1,0,1,1,1,1}; public static void main(String[] args) { System.out.println(power(2,-3)); } public static double power(double base,int exponent){ //首先判断base是否为0,但double不能直接和0比较 if(base<0.0000001 && base>-0.0000001) return 0; if(exponent==0) return 1; int flag=1;//正负标志 if(exponent<0) { flag=-1; exponent=-exponent; } double result = powerWithunsigned(base,exponent); if(flag>0) return result; return 1/result; } //exponent>0 public static double powerWithunsigned(double base,int exponent){ if(exponent==0) return 1; if(exponent==1) return base; double result = powerWithunsigned(base,exponent>>1); result = result*result; //如果exponent为奇数 if((exponent&1)>0){ result=result*base; } return result; }}
任意数的整数次方
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。