zoukankan      html  css  js  c++  java
  • 求幂的问题

    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方

    /*
    * 1.全面考察指数的正负、底数是否为零等情况。 
    * 2.写出指数的二进制表达,例如13表达为二进制1101。 
    * 3.举例:10^1101 = 10^0001*10^0100*10^1000。 
    * 4.通过&1和>>1来逐位读取1101,为1时将该位代表的乘数累乘到最终结果。 
    */
     public double Power(double base, int n) 
    { 
        double res = 1,curr = base;
        int exponent;
        if(n>0)
        {
             exponent = n;
        }
        else if(n<0)
        { 
            if(base==0) 
                throw new RuntimeException("分母不能为0"); 
            exponent = -n;
        }
        else
        {
         return 1;
        }
        while(exponent!=0)
        { 
            if((exponent&1)==1) 
                res*=curr; 
            curr*=curr;// 翻倍 
            exponent>>=1;// 右移一位
        }
        return n>=0?res:(1/res);
    }                
  • 相关阅读:
    周二
    周末
    简单I/O
    格式输出(1)
    c语言—变量
    水仙花数
    控制语句—循环语句
    mysql6数据库安装与配置
    如何解决Tomcat端口号被占用
    eclipse配置tomcat详细步骤
  • 原文地址:https://www.cnblogs.com/TheQi/p/9225450.html
Copyright © 2011-2022 走看看