【Leetcode每日一题】 递归 - Pow(x, n)(难度⭐⭐)(40)

1. 题目解析

题目链接:50. Pow(x, n)

这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。

2.算法原理

  • 在这个算法中,递归函数的任务是求出 x 的 n 次方。
  • 那么,这个函数是怎么工作的呢?
  • 它并不直接计算 x 的 n 次方,而是先找出 x 的 n/2 次方。这个步骤很关键,因为它把问题规模缩小了一半。接下来,根据 n 的奇偶性,我们可以得出 x 的 n 次方的结果。
  • 具体地说,如果 n 是偶数,那么 x 的 n 次方就等于 x 的 n/2 次方的平方。这个很好理解,比如 2 的 4 次方等于 (2 的 2 次方) 的平方,即 4 的平方,结果是 16。
  • 如果 n 是奇数,那么 x 的 n 次方就等于 x 乘以 x 的 (n-1)/2 次方的平方。这同样很直观,比如 2 的 5 次方等于 2 乘以 (2 的 4 次方),即 2 乘以 16,结果是 32。
  • 最后,我们需要确定递归的终止条件。很简单,当 n 为 0 的时候,任何数的 0 次方都是 1,所以我们直接返回 1。

3.代码编写

class Solution 
{
public:double myPow(double x, long long n) {return n < 0 ? 1 / pow(x, n) : pow(x, n);        }double pow(double x, long long n){if(n == 0) return 1.0;double tmp = pow(x, n / 2);return n % 2 == 0 ? tmp * tmp : tmp * tmp * x;}
};

The Last

嗯,就是这样啦,文章到这里就结束啦,真心感谢你花时间来读。

觉得有点收获的话,不妨给我点个吧!

如果发现文章有啥漏洞或错误的地方,欢迎私信我或者在评论里提醒一声~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/557374.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Devin,它只是人类历史的一个正常延续而已

近期&#xff0c;关于Devin的讨论无疑成为了科技界的热点话题。作为一款由初创公司Cognition AI研发的AI程序员&#xff0c;Devin凭借其惊人的“端到端解决成功率”和高效完成需求的能力&#xff0c;在各大社交媒体和科技论坛上引发了广泛的讨论。然而&#xff0c;在这场看似前…

LeetCode刷题记录:(13)N皇后(难题不难)

leetcode传送通道 传说中的N皇后&#xff0c;不难&#xff0c;进来了就看完吧 注释序号代表鄙人写代码的顺序和思考逻辑&#xff0c;供参考 class Solution {// 1.定义结果数组List<List<String>> result new ArrayList<>();public List<List<String&…

Learn OpenGL 23 阴影映射

阴影 阴影是光线被阻挡的结果&#xff1b;当一个光源的光线由于其他物体的阻挡不能够达到一个物体的表面的时候&#xff0c;那么这个物体就在阴影中了。阴影能够使场景看起来真实得多&#xff0c;并且可以让观察者获得物体之间的空间位置关系。场景和物体的深度感因此能够得到…

你要的个性化生信分析服务今天正式开启啦!定制你的专属解决方案!全程1v1答疑!

之前在 干货满满 | 给生信小白的入门小建议 | 掏心掏肺版 中有提到&#xff0c;如果小伙伴们真的想学好生信&#xff0c;那编程能力是必须要有的&#xff01;但是可能有些小伙伴们并没有那么多的时间从头开始学习编程&#xff0c;又或是希望有人指导或者协助完成生信分析工作&a…

32.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-网络数据分析原理与依据

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;31.其它消息的实…

python中获取当前项目的目录

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 今天介绍一下&#xff0c;如何在python中获取当前项目所在的目录&#xff0c;而不是运行脚本的目录。 class ProjectPaths:# 初始化时获取当前脚本的路径staticmethoddef get_script_dir():…

【每日八股】Java基础经典面试题4

前言&#xff1a;哈喽大家好&#xff0c;我是黑洞晓威&#xff0c;25届毕业生&#xff0c;正在为即将到来的秋招做准备。本篇将记录学习过程中经常出现的知识点以及自己学习薄弱的地方进行总结&#x1f970;。 本篇文章记录的Java基础面试题&#xff0c;如果你也在复习的话不妨…

CodeWhisperer插件

一、前言 产品官网地址&#xff1a;What is CodeWhisperer? - CodeWhisperer Amazon CodeWhisperer 是一个通用的、由机器学习驱动的代码生成器&#xff0c;可实时为您提供代码建议。在您编写代码时&#xff0c;CodeWhisperer 会根据您现有的代码和注释自动生成建议。您的个…

Leetcode 70.爬楼梯

心路历程&#xff1a; 这道题是之前学院的一道复试题&#xff0c;大家都没怎么刷过算法题&#xff0c;只记得当年凭借几次试错自己把这道题做出来了&#xff0c;当时也不知道动态规划之类的。 正常来讲&#xff0c;这种找不到循环结构的题一般都是递归解决。 注意的点&#x…

docker一键部署若依前后端分离版本

比如这里把文件放到/xin/docker/jiaoZ/的目录下&#xff0c;jar包和下面的配置文件都放在这个文件夹下。 注意要把jar端口改为你实际启动的&#xff0c;映射端口也可以改为你想要的。 这里的映射端口为&#xff1a;nginx监听80端口&#xff0c;jar在8620端口&#xff0c;mysq…

Csrf漏洞

Csrf漏洞 一&#xff0c;漏洞简介: 身份嫁接&#xff0c;伪造。攻击者通过一些手段欺骗用户的浏览器去访问一个受害者之前登录过的网站并进行一些操作。因为之前在浏览器认证过&#xff0c;所以网站会认为是受害者在操作而去运行。但同时也造成了受害者必须在登录受信任网站的…

Appium+python自动化怎么查看程序所占端口号和IP

简介 这篇博文和分类看似没有多大关系&#xff0c;但是也是从上一篇衍生出来的产物&#xff0c;因为涉及到 FQ工具 Lantern &#xff0c;就算是给关注和支持的小伙伴们拓展一下眼界和知识面。而且好多人都阅读了上一篇没发现那个参考博客点不开吗&#xff1f;那是因为还没来的…