码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【递归】Pow(x , n)(Java版)


    目录

    1.题目解析

    2.讲解算法原理

    2.1.如何来解决Pow问题?

    2.2.为什么这道题可以用递归来做?

    2.2.1 什么是递归

    2.2.2 为什么会用到递归

    3.如何编写递归代码?

    4.递归的细节展开图


    1.题目解析

    50.Pow(x , n)

    实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,x^n )。

    示例 1:

    输入:x = 2.00000, n = 10
    输出:1024.00000
    

    示例 2:

    输入:x = 2.10000, n = 3
    输出:9.26100
    

    示例 3:

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

    2.讲解算法原理

    2.1.如何来解决Pow问题?

    想要用递归解决这道题,我还是先讲一下我理解的递归,我们可以把递归所在的函数理解为一个黑盒子,在这个黑盒子中,他的功能能够完美实现你的需求,所以我们就需要相信它一定能够完成我想要的,这里同样

    我们可以对当前数取根号,

    当 n = 偶数 时当前数 = 当前数^(n/2) * 当前数^(n/2)

    当 n = 奇数 时当前数 = 当前数^(n/2) * 当前数^(n/2) * 当前数^1

    所以我们只需要让当前数不断的去衍生......

    直到为1为止

    2.2.为什么这道题可以用递归来做?


    2.2.1 什么是递归

        函数自己调用自己的情况

    2.2.2 为什么会用到递归

            在解决主问题的时候碰到相同的子问题

            在解决子问题的时候又碰到相同的主问题

     

     我们可以看到当前这道题的主问题都有相同的子问题,就是当前值等于子值的平方

    3.如何编写递归代码?

    1. class Solution {
    2. public double myPow(double x, int n) {
    3. return n < 0 ? 1.0 / pow(x,-n) : pow(x,n);
    4. }
    5. public double pow(double x,int n){
    6. if (n == 0)return 1.0;
    7. double tmp = pow(x,n / 2);
    8. return (n % 2) == 0 ? tmp * tmp : tmp * tmp * x;
    9. }
    10. }

    4.递归的细节展开图

  • 相关阅读:
    php快速排序法
    mybatis源码阅读系列(一)
    Quill 文本编辑器
    app专项测试:app弱网测试
    【操作系统】基础知识
    解决XshellL/SecureCRT使用rz指令上传文件乱码且文件无法删除的问题
    2023年个人怎么报考湖北建筑安全员C2C3证-叙后尘
    Flask基础学习3
    【LeetCode刷题】面试题 17.19. 消失的两个数字
    计算机毕设(附源码)JAVA-SSM基于协同过滤技术的旅游景点购票系统
  • 原文地址:https://blog.csdn.net/m0_62976995/article/details/134078522
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号