数值的整数次方

数值的整数次方(Java) 题目:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。第一思路:直接利用for循环,循环exponent次。代码:public double Power(double base, int exponent){ double result = 1.0; for (int i = 1;... 阅读详情

1.题目

在这里插入图片描述

2.解法1(暴力法)

public class Solution {
    public double Power(double base, int exponent) {
         if (base == 0f) return 0f;
         if (exponent == 1) return base;
         int exp = exponent > 0 ? exponent : -exponent;
         double result = base;
         for(int i = 1; i < exp; i++) {
               result *= base;
        }
        return exponent > 0 ? result : (1.0f/result);
         
  }
}

时间复杂度为O(exp), 空间复杂度为O(1)

解法2 (快速幂运算)

public class Solution {
    public double Power(double base, int exponent) {
        if (base == 0f) return 0f;
        if (exponent == 1) return base;
        boolean flag = false;
        if (exponent < 0) {
            flag = true;
            exponent = - exponent;
        }
        
        double result = 1.0f;
        while (exponent != 0) {
            if ((exponent & 1 )== 1) {
                result *= base;
            }
            base *= base;
            exponent >>= 1;
        }
        return flag? (1.0f/result) : result;
         
  }
}

假如是2的7次方,那么7转换成二进制位0111,那么就是2的4次方 乘以 2的2次方 乘以2的一次方,16 4 2, 可以看到每次右移1位,这一位就等于前1位的平方。

== 时间复杂度为O(logn),空间复杂度为O(1)==

解法3(递归法)


public class Solution {
    public static double Power(double base, int exp) {
        boolean flag = exp < 0;
        if (flag) {
            exp = -exp;
        }
        double result = getPower(base, exp);
        return flag ? 1 / result : result;
    }
 
    public static double getPower(double base, int exp) {
        if (exp == 0) {
            return 1;
        }
        if (exp == 1) {
            return base;
        }
        double ans = getPower(base, exp >> 1);
        // 都是这个数平方后的判断的。
        ans *= ans;
        if ((exp & 1) == 1) {
            ans *= base;
        }
        return ans;
    }
}

参考快速幂方法
添加链接描述

十一、增强现实 那都是n年前的老版本了,新版本完全没有这个问题,我就是纠结这个问题,搭建若干环境,又是vmware虚拟机,又是msys2,又是anaconda,又是找机器,折腾了几天,结果通通不是。以一张实际卡片为锚点,通过笔记本的摄像头,在显示器上将一个计算机内的3d物体显示在卡片上,类似于电影上看到的那种全息投影技术;如果你是想在windows环境下开发linux运行程序,那么CygWin/gcc是你的不二之选。而如果你想开发的是windows运行程序,并且追求速度,那么二者相比而言,MinGW是更好的选择。 阅读详情

相关推荐

从零到一:ESP32-P4 PPA加速的配置陷阱与避坑指南

本文详细解析ESP32-P4结合LVGL的PPA硬件加速配置中的常见陷阱,包括内存对齐、缓冲区设置和同步机制等关键问题。提供实用的避坑指南和优化方案,帮助开发者高效启用esp32p4的PPA加速功能,显著提升图形渲染性能。

sky77的博客 396

(分治) 剑指 Offer 16. 数值的整数次方 ——【Leetcode每日一题】

剑指 Offer 16. 数值的整数次方 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题

weixin_43412762的博客 565

RT-Thread Studio使用笔记(四):带片外Flash(W25Q128)的OTA(YModem)

前言 在学习OTA之前,请先参考上两篇博客写的关于SPI设备及W25Q128的使用方法,传送门: https://blog.youkuaiyun.com/tigerots/article/details/107423633 https://blog.youkuaiyun.com/tigerots/article/details/107933991 如何使用OTA 一. 制作BootLoader 打开Bootloader 在线获取地址,注册,并根据RT-thread官方文档生成BootLoader,官方文档已经写的很清楚,再此

tigerots的专栏 4009

数值的整数次方——多种方法总结

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路一:本题以前也做过,只不是没有总结。有很多方法,效率不一样而已,第一种方法分情况讨论,然后采用分支递归,如果直接用循环,效率非常低O(n),现在分情况,分支递归,效率提高一半。考虑了底数和指数为0的特殊情况之后,就分指数是负数还是正数来讨论,如果是正数,那么分奇数还是偶数,因...

sunandstarws的博客 778

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5944

DSMA时序修复避坑指南:当Setup和Hold互卡时,除了调Margin还能做什么?

本文深入探讨DSMA时序修复中的Setup与Hold互锁问题,提供7种高阶策略,包括优先级判断、高级参数组合、单元类型智能替换等,帮助工程师突破时序收敛瓶颈。特别针对fix_eco_timing命令的隐藏参数和物理协同优化进行详细解析,助力芯片设计实现时序收敛。

weixin_30162121的博客 298

16. 数值的整数次方

16. 数值的整数次方 NowCoder 题目描述 给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent,求 base 的 exponent 次方。 解题思路 下面的讨论中 x 代表 base,n 代表 exponent。 因为 (x*x)n/2 可以通过递归求解,并且每次递归 n 都减小一半,因此整个算法的时间复杂度为 O(logN)。 public ...

weixin_37097995的博客 273

揭秘AI人工智能中Stable Diffusion的模型微调技巧

Stable Diffusion作为一种强大的文本到图像生成模型,在艺术创作、设计、娱乐等多个领域展现出了巨大的应用潜力。然而,其默认的模型输出可能无法满足特定用户或特定场景的个性化需求。本文章的目的在于深入揭秘Stable Diffusion的模型微调技巧,让读者能够根据自己的需求对模型进行定制化调整,生成符合特定风格、主题或要求的图像。范围涵盖了从基础概念到实际操作,从理论原理到项目实战的全方位内容,旨在为读者提供一个系统且深入的学习指南。

大模型应用工坊 950

LeetCode–数值的整数次方

LeetCode–数值的整数次方 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 剑指 Offer 16. 数值的整数次方 主站 50 题 题目 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 示例 1: 输入: 2.00000, 10 输出: 1024.00000示例 2: 输入: 2.10000, 3 输

归子莫的博客 867

SXU—软件测试方法和技术-朱少民-第四部分 软件测试流程和规范-附考点

软件测试方法和技术-朱少民-第四章 软件测试流程和规范—这本书最后一部分的考点整理,考点分析

weixin_63597914的博客 1752

深度强化学习 | 基于SAC算法的动态避障(ROS C++仿真)

本文介绍了基于SAC(软性演员-评论家)算法的机器人运动规划方法,通过PyTorch框架实现了端到端训练,并部署到Python和ROS C++中。实验结果显示,基于SAC算法的智能体在动态避障任务中表现良好,能实现从起点到终点的无碰撞导航。

FRIGIDWINTER的博客 8222

数值的整数次方 算法

数值的整数次方 import org.junit.Test; /** * 数值的整数次方 * 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 * @author 10249 * */ public class Deal023 { @Test public vo...

weixin_45130905的博客 307

PCL 直通滤波

内容抄自优快云点云侠:[【2024最新版】PCL点云处理算法汇总(C++长期更新版)](https://blog.youkuaiyun.com/qq_36686437/article/details/114160640)。质量无忧,永久免费,可放心复制粘贴。

m0_51204289的博客 905

算法的学习笔记—数值的整数次方(牛客JZ16)

通过利用分治法求解数值的整数次方问题,我们成功地将计算复杂度从 O(N) 降至 O(logN),大大提高了计算效率。该方法通过递归将问题规模不断缩小,并通过合并子问题的解得到最终结果。同时,考虑到次方数为负的情况,我们也通过判断负数的逻辑处理了这种特殊情况。该算法不仅高效,而且在处理大规模数据时表现尤为突出。😁热门专栏推荐想学习vue的可以看看这个java基础合集数据库合集redis合集nginx合集linux合集手写机制微服务组件spring_尘觉springMVCmybits🤔欢迎大家加入我的社区。

业精于勤,荒于嬉 1406

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

剑指OFFER-数值的整数次方

剑指OFFER-数值的整数次方QuestionSolution暴力求幂递归快速幂 Question 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 关键词:快速幂 递归 二进制 Solution 暴力求幂 时间复杂度:O(N) 空间复杂度:O(1) Python class Solutio...

会有Mao的 242

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数值的整数次方-C++

// 面试题16:数值的整数次方 // 题目:实现函数double Power(double base, int exponent),求base的exponent // 次方。不得使用库函数,同时不需要考虑大数问题。 #include #include bool g_InvalidInput = false; bool equal(double num1, double num2); double PowerWithUnsignedExponent(double b

了解➔熟悉➔掌握➔精通 618

面试题16:数值的整数次方

// 面试题16:数值的整数次方 // 题目:实现函数double Power(double base, int exponent),求base的exponent // 次方。不得使用库函数,同时不需要考虑大数问题。 思路:考虑到base==0,exponent < 0时,无意义。exponent<0时,结果取倒数。还有比较两个double类型的 数值时,不能用等号。 #inclu...

weixin_41989784的博客 135

【C/C++练习题】数值的整数次方

《剑指Offer》面试题16:数值的整数次方

本末实验室 825

剑指Offer对答如流系列 - 数值的整数次方

文章目录面试题15:数值的整数次方一、题目描述二、问题分析三、问题解答 面试题15:数值的整数次方 一、题目描述 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 二、问题分析 三思而后行,这道题如果没事实现考虑好,非常容易出错。 首先分析列举出所有的场景。 base的值 可能为正数...

明月沉江春雾晓 3162

数值的整数次方 和开根号

1.  数值的整数次方    a. 不考虑大数情况  #define PRECISION 0.00001 double pow(double base, int exp){ if (equal(base,0)) return 0; if (exp == 0) return 1.0; bool negative = (exp>0)?false:true;

benbenab的专栏 1772
上一篇: Leetcode 108.将有序数组转换为二叉搜索树
下一篇: 反转链表
念殊15
博客等级 码龄8年 17粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值