剑指offer 15. 数值的整数次方

简介: 剑指offer 15. 数值的整数次方

题目描述


实现函数double Power(double base, int exponent),求baseexponent次方。

不得使用库函数,同时不需要考虑大数问题。

只要输出结果与答案的绝对误差不超过 10−2 即视为正确。

注意:


  • 不会出现底数和指数同为0的情况
  • 当底数为0时,指数一定为正
  • 底数的绝对值不超过 10,指数的绝对值不超过 109


样例1

输入:10 ,2
输出:100


样例2

输入:10 ,-2  
输出:0.01


方法一:快速幂 O(logn)


2.png


df11800e07a549fba40ab5c355d10b00.png


3.png

class Solution {
public:
    double Power(double base, int exponent) {
        typedef long long int LL;
        bool is_minus = exponent < 0;
        double res = 1;
        for (LL k = abs((LL)exponent); k; k >>= 1) {
            if (k & 1) res *= base;
            base *= base;
        }
        if (is_minus)    res = 1 / res;
        return res;
    }
};

欢迎大家在评论区交流~




目录
相关文章
|
21天前
求一个整数的所有因数
【10月更文挑战第25天】求一个整数的所有因数。
14 5
【剑指offer】-数值的整数次方-12/67
【剑指offer】-数值的整数次方-12/67
|
算法 C++
剑指offer(C++)-JZ16:数值的整数次方(算法-位运算)
剑指offer(C++)-JZ16:数值的整数次方(算法-位运算)
|
算法
剑指Offer - 面试题16:数值的整数次方
剑指Offer - 面试题16:数值的整数次方
55 0
【剑指offer】二进制中1的个数&&2的幂
【剑指offer】二进制中1的个数&&2的幂
【剑指offer】二进制中1的个数&&2的幂
35.数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
52 0
35.数值的整数次方
|
前端开发 JavaScript 程序员
数值的整数次方
数值的整数次方
数值的整数次方
AcWing 720. 连续整数相加
AcWing 720. 连续整数相加
85 0
AcWing 720. 连续整数相加
【3.整数与浮点数二分】
1.整数二分 >### 二分本质 >- 有单调性,一定可以二分 >- 二分的题目,不一定非要有单调性 >### 思路:分俩种情况,有俩种模板
110 0
【3.整数与浮点数二分】
|
算法
【刷算法】数值的整数次方
【刷算法】数值的整数次方