首页 > 其他分享 >《剑指Offer》-16-数值的整数次方

《剑指Offer》-16-数值的整数次方

时间:2023-08-17 15:26:00浏览次数:34  
标签:myPow 平方 return 运算 Offer res 16 double 次方

将 n 次相乘的幂运算转化为 log2N 次平方运算,并且采用递归算法

原书给出的最优算法本身不处理负数,是外层函数处理的

	double myPow(double x, int n) {
		double res = pow(x, abs(n));
		if (n < 0)res = 1 / res;
		return res;
	}

	double pow(double x, int n) {
		if (n == 0)return 1;// 不管是奇数还是偶数,最终移位运算会得到0,也就是n最终=0
		// 这里我们是用移位运算替代了/2运算
		// if (n == 1)return x;
		double res = myPow(x, n >> 1);// 自顶向下分解为 log2n 次平方操作
		res *= res;// 自底向上平方 log2n次
		// 比如3和2都是右移1次变成1,两次变成0,所以最后对于奇数次的情况需要补一次,同时也是最外层的底数本身
		if (n & 1)res *= x;
		return res;
	}

标签:myPow,平方,return,运算,Offer,res,16,double,次方
From: https://www.cnblogs.com/yaocy/p/17637647.html

相关文章

  • 8-17|2023-08-16 12:33:55,972 [salt.master :1643][ERROR ][20321] Received
    该日志条目显示了来自于Saltminion(在这里标识为`[master]`,这可能是minion的名称或者是由于其他原因导致的日志格式)的错误,表示minion在执行一个函数时发生了异常。日志内容“`Theminionfunctioncausedanexception`”表示在minion端执行的特定Salt函数引发了一个错误或异常。......
  • 【2023-08-16】公事公办
    20:00工作是一件好事,而我们每个人都有许多工作要干;它有益于身心健康,使我们不会感到无聊,不会干坏事。比起金钱和时装来,它更能给我们一种能力感和独立感。                                      ......
  • 【剑指Offer】58、对称的二叉树
    【剑指Offer】58、对称的二叉树题目描述:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。解题思路:本题判断一棵树是不是对称的,和第18题可以对比分析:二叉树的镜像,和LeetCode第101题:101.对称二叉树是同一道题。解......
  • 【剑指Offer】59、按之字形顺序打印二叉树
    【剑指Offer】59、按之字形顺序打印二叉树题目描述:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。解题思路:这道题仍然是二叉树的遍历,相当于层次遍历,可以和第22题:从上往下打印二......
  • 2023.8.16
    今天早上睡到中午了,舒服,一想到回学校就十分的激动,中午打开瓦罗兰特学习到晚上,累了,回想这个假期真是差强人意啊,希望下个假期能好过一些,不过学校生活更好一些,能和室友一起就不无聊啦,在学校规律地生活,才是对我的最好礼物,明天就回去了。......
  • 20230816python学习日志
    在初始化属性中的类#person_class.pyclassPerson:population=0#初始化属性,用于计数def__init__(self,myAge):self.age=myAgePerson.population+=1#计数器defget_population(self):returnPerson.population......
  • 2023.8.16模拟赛总结
    T1Idiot的乘幂题目大意就是给\(a,b,c,d,p\)满足求解这题考场一开始发现\(\gcd(a,c)=1\)没啥用,后来发现其实很巧妙,直接辗转相除\(a,c\)同时维护\(\chi^a,\chi^c\)最后剩下来的就是\(\chi\)当然题解给了一个鬼才想到的做法构造\(\chi=\chi^1=\chi^{ax+cy}\)所以可以用exgc......
  • 8016: 重新排序 差分
    描述 给定一个数组 A 和一些查询 Li,Ri,求数组中第 Li 至第 Ri 个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?  输入 输入第一行包含一个整数......
  • 2023.8.16
    今天没做什么,主要是栈溢出差不多学完了,想花点时间再把基础打好一点今天去b站找到个pwn的视频,最近打算去看一下其中有关gdb调试的相关东西,恰好我调试相关的东西只会一点最简单的,想更好地去做pwn题,感觉这方面还是要学好。中间应该也会去找一些题目来做考虑到九月有竞赛,我在此之前......
  • 闲话8.16
    今天完完整整的在二南度过了一天,不算很舒服......