剑指offer:数值的整数次方

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

class Solution:
    def Power(self, base, exponent):
        # 任何数的0次方都是1
        if exponent == 0:
            return 1
        # 0的任何次方(除了0的0次方)都为0
        if base == 0:
            return 0

        # 先记录指数符号
        sign = exponent > 0
        exponent = abs(exponent)

        res = 1
        cur = base

        while exponent != 0:
            # 如果输入的指数为奇数,则先将res变成base
            # 每当exponent变为奇数的时候,先保存当时的cur
            if exponent & 1 == 1:
                res *= cur

            # 每次将cur平方,exponent除二
            cur *= cur
            exponent >>= 1

        # 如果指数是正数,则直接返回指数结果,否则返回倒数
        if sign:
            return res

        return 1 / res

原文地址:https://blog.51cto.com/jayce1111/2381569

时间: 2024-08-29 17:40:08

剑指offer:数值的整数次方的相关文章

剑指offer——数值的整数次方

题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 下面来看代码: public class PowerSolution { public static double Power(double base, int exponent) { //当底数为0,指数小于0,则为非法情况. if (equal(base,0.0)&&exponent<0) { return 0.0f; } //当指数小于0的时候即求该数的倒数再乘

[剑指offer] 浮点数的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 输入描述 base,exponent 输出描述 base的exponent次方 题目分析 首先要注意,指数正负和零的情况判别: ①任何数的0次方等于0 ②0不能做除数(也就是指数为负时,基数不能为0) 解法一 运行时间:27ms 占用内存:636k public class Solution { public double Power(double base, int exp

剑指:数值的整数次方

题目描述 实现函数 double Power(double base, int exponent),求 base 的 exponent 次方. 不得使用库函数,同时不需要考虑大数问题. 注意: 不会出现底数和指数同为 0 的情况. 注意判断值数是否小于 0.另外 0 的 0 次方没有意义,也需要考虑一下,看具体题目要求. 样例1 输入:10 ,2 输出:100 样例2 输入:10 ,-2 输出:0.01 解法 解法一 public static double power(double base,

剑指Offer09 数值的整数次方

1 /************************************************************************* 2 > File Name: 09_Power.c 3 > Author: Juntaran 4 > Mail: [email protected] 5 > Created Time: 2016年08月29日 星期一 21时07分21秒 6 *********************************************

剑指Offer-数值的整数次方

数值的整数次方 题目描述: ??给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路: ??注意判断输入的int类型的整数exponent是正数还是负数,0: 如果是正数,使用循环来让base自身乘exponent次,直接返回: 如果是负数,按照正数的方法得到结果result,然后返回1.0/result,.: 如果是0,直接返回1. 我的Java源代码: public class Solution { public doubl

剑指offer之关于整数的处理

首先是整数次方的处理 在这处理的时候有几个细节主义处理 1.当指数是负数的时候 2.当指数式0的时候 3.当不满足条件的时候要抛出异常 再一个就是常用的将一个树化为二进制的形式,或者是求整数的幂或者矩阵 的幂 这个函数写的时候是用递归来写的,所以要注意跳出来的条件,第二使用递归来实现,三,用&操作代替原来的求%的操作,而且在用之前都要考虑这个范围的问题,一般会说参数为n,可是这个n到底是多大呢,用相应的类型去求解相应规模的运算 ----------------------------------

12、剑指offer--数值的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路:首先要注意特殊情况的处理   base为0情况  exponent为0 为1情况  exponent为负数情况 1 #include <iostream> 2 using namespace std; 3 class Solution { 4 public: 5 //要注意的几点 6 //1.base == 0 7 //2.exponent == 0:==1 8

剑指offer—字符串转换整数

对于这个问题, 本题考查的实际上就是字符串转换成整数的问题,或者说是要你自行实现atoi函数.那如何实现把表示整数的字符串正确地转换成整数呢?以"345"作为例子: 当我们扫描到字符串的第一个字符'3'时,由于我们知道这是第一位,所以得到数字3. 当扫描到第二个数字'4'时,而之前我们知道前面有一个3,所以便在后面加上一个数字4,那前面的3相当于30,因此得到数字:3*10+4=34. 继续扫描到字符'5','5'的前面已经有了34,由于前面的34相当于340,加上后面扫描到的5,最终

剑指offer-数值的整数次方-调整数组顺序使奇数位于偶数前面-代码的完整性-python

题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 保证base和exponent不同时为0 思路 求base的exponent次方,exponent有两种可能性, exponent>0 for循环exponent次,结果与base相乘 exponent<0 for循环exponent次,结果与base相除 输出结果: # -*- coding:utf-8 -*- class Solution: def Power(self

剑指offer之【整数中1出现的次数(从1到n整数中1出现的次数)】

题目: 整数中1出现的次数(从1到n整数中1出现的次数) 链接: https://www.nowcoder.com/practice/bd7f978302044eee894445e244c7eee6?tpId=13&tqId=11184&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此