zoukankan      html  css  js  c++  java
  • 【剑指offer12数值的整数次方】

    题目描述

    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
     
    保证base和exponent不同时为0
     
    解:
    浮点数的次方也是拿着移位运算
    cur=底数  指数按位&1 ?乘:不乘   cur乘倍  指数右移位
    另外判断一下指数exponent的正负,返回倒数否
    class Solution {
    public:
        double Power(double base, int exponent) {
            if(base == 0)return 0;
            if(exponent == 0 )return 1;
            double ans = 1;
            int cur = base ;
            int flag = 0 ;
            if(exponent<0){
                flag = 1 ;//负数标记
                exponent = -exponent ;
            }
            //快速幂运算
            while(exponent>0){
                if((exponent&1)==1){
                    ans*=cur;
                }
                cur*=cur; exponent = exponent>>1;
            }
            
            if(flag)ans = 1/ans ;
            return ans ;
        }
    };
  • 相关阅读:
    HTML/CSS
    Python字符编码
    软件测试遇到的问题积累
    数学
    经济学路谱
    工具
    DataStage
    Shell编程—定时任务
    WebLogic部署
    imageView-scaleType 图片压缩属性
  • 原文地址:https://www.cnblogs.com/Stephen-Jixing/p/13124127.html
Copyright © 2011-2022 走看看