• 数值的整数次方 --剑指offer


    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
     
    保证base和exponent不同时为0
    方法一:
    注意指数为负的情况。正常迭乘 时间复杂度为0(n);
    public class Solution {
        public double Power(double base, int exponent) {
            if(base == 0){
                return 0;
            }
            if(exponent == 0){
                return 1;
            }
            double result = base;
            int flag=0;
            if(exponent < 0){
                flag =1;
                exponent=-exponent;
            }
            for(int i =1;i <exponent;i ++){
               result *= base;
            }
            return flag == 1?1/result:result;
      }
    }

    方法2:用快速幂方法  

    参考博客:https://www.cnblogs.com/lca1826/p/6748372.html 

    public class Solution {
        public double Power(double base, int exponent) {
            if(base == 0){
                return 0;
            }
            if(exponent == 0){
                return 1;
            }
            double result=1.0;
            int expo=exponent;
            if(exponent < 0){
                expo=-exponent;
            }
            while(expo!=0){
                if( (expo&1)!=0){
                    result *= base;
                }
                base *= base;
                expo=expo>>1;
            }
            return exponent >0?result:(1/result);
      }
    }
  • 相关阅读:
    rocketmq的broker如何同步信息的?
    SO_LINGER 选项
    哈哈哈
    NAG博客目录
    事后分析$eta$
    项目展示$eta$
    测试报告$eta$
    发布声明$eta$
    Scrum meeting 10
    技术博客6--Django实现列表分页
  • 原文地址:https://www.cnblogs.com/nlw-blog/p/12420444.html
Copyright © 2020-2023  润新知