zoukankan      html  css  js  c++  java
  • 数值的整数次方

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

    保证base和exponent不同时为0

    思路

    普通迭代,时间复杂度O(n),空间复杂度O(1)。
    折叠迭代,时间复杂度O(lgn),空间复杂度O(1)。

    Java函数

    public class Solution {
        public double Power(double base, int exponent) {
            return Math.pow(base, exponent);
      }
    }
    

    普通迭代

    public class Solution {
        public double Power(double base, int exponent) {
            if(base == 0)    return 0;
            double ans = 1.0d;
            int e = exponent < 0 ? -exponent : exponent;
            while(e-- > 0) {
                ans *= base;
            }
            return exponent < 0 ? 1 / ans : ans;
      }
    }
    

    折叠迭代

    public class Solution {
        public double Power(double base, int exponent) {
            if(base == 0)    return 0;
            double ans = 1.0d;
            int e = exponent < 0 ? -exponent : exponent;
            while(e > 0) {
                if(e%2 == 1) {
                    ans *= base;
                }
                base *= base;
                e >>= 1;
            }
            return exponent < 0 ? 1 / ans : ans;
      }
    }
    
  • 相关阅读:
    UWA 技术分享连载 转载
    移动游戏加载性能和内存管理全解析 学习
    英语书籍阅读
    2017年6月
    Unity 官方文档学习
    YAML Class ID Reference
    Unity Blog 学习
    希腊字母
    2017年5月
    转载:书籍
  • 原文地址:https://www.cnblogs.com/ustca/p/12321707.html
Copyright © 2011-2022 走看看