• 剑指 Offer 16. 数值的整数次方


    实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

    示例 1:

    输入: 2.00000, 10
    输出: 1024.00000
    示例 2:

    输入: 2.10000, 3
    输出: 9.26100
    示例 3:

    输入: 2.00000, -2
    输出: 0.25000
    解释: 2-2 = 1/22 = 1/4 = 0.25
     

    说明:

    -100.0 < x < 100.0
    n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

    code1:迭代

    class Solution {
    public:
        double myPow(double x, int n) {
            if(n == 1 || n == 0) {
                return n == 1 ? x : 1;
            }
    
            int sign = 1;
            long num = n;
            if (num < 0) {
                sign = -1;
                num = -num;
            }
    
            double res = 1;
            while (num) {
                if (num & 1) {
                    res *= x;
                }
                x *= x;
                num >>= 1;
            }
    
            return sign == 1 ? res : 1 / res;
        }
    };

    code2:递归

    class Solution {
    private:
        double myPowCore(double x, int n) {
            if (n == 0) {
                return 1;
            }
    
            double res = myPowCore(x, n/2);
            if(n & 1) {
                return res * res * x;
            }
            else {
                return res * res;
            }
        }
    public:
        double myPow(double x, int n) {
            if(n == 1 || n == 0) {
                return n == 1 ? x : 1;
            }
    
            if(n > 0){
                return myPowCore(x, n);
            }
            return myPowCore(1/x, n);
        }
    };
  • 相关阅读:
    Spring 控制反转容器(Inversion of Control – IOC)
    理解依赖注入(DI
    创建一个简单的Spring应用
    Spring开发环境搭建(Eclipse)
    Spring框架模块
    Spring 框架介绍
    spring教程
    Bulma CSS
    Bulma CSS
    Bulma CSS
  • 原文地址:https://www.cnblogs.com/tianzeng/p/13514571.html
Copyright © 2020-2023  润新知