java 计算x的n次方

来源:互联网 发布:三十岁女装品牌 知乎 编辑:程序博客网 时间:2024/04/28 11:24

x的n次方,可以用简单的迭代方法自乘n次,但这种方法十分低效。

可以用两种方法

代码如下:

//计算x的n次方的方法,

public class X_n {    public static void main(String args[]){    //int x=power(3,16);    int x1=power1(3,16);    System.out.println(x1);    }    /**     * 第二种方法:把n转化为二进制数,扫描每个二进制位,若为0则,则直接平方,否则平方后再乘以x     * @param i     * @param j     * @return     */    private static int power1(int i, int j) {// TODO Auto-generated method stub    int y=1;    String ab = Integer.toBinaryString(j);    for(int a=0;a<ab.length();a++)    {    //System.out.println(ab.length());    int s=Integer.parseInt(String.valueOf(ab.charAt(a)));//char类型转化为int        //System.out.println(s);    y=y*y;    if(s==1){    y=y*i;    }    }    System.out.println(ab);return y;}/**     * 第一种方法:采用递归的方法,假设已经知道x的m次方,则若m为偶数,则x的n次方等译(x^m)^2,否则等于x(x^m)^2     * @param i     * @param j     * @return     */private static int power(int i, int j) {// TODO Auto-generated method stubint y=0;if(j==0){y=1;}else{y=power(i,j/2);y=y*y;if(j%2!=0){y=i*y;}}return y;}}

原创粉丝点击