当前位置:网站首页>leetcode 16. 数值的整数次方(快速幂+递归/迭代)
leetcode 16. 数值的整数次方(快速幂+递归/迭代)
2022-08-03 20:06:00 【会编程的露娜】
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。
示例 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
提示:
-100.0 < x < 100.0
-231 <= n <= 231-1
-104 <= xn <= 104
思路:
快速幂+递归
class Solution {
public:
double myQuick(double x,long long k){
if(k==0)
return 1.0;
double y=myQuick(x,k/2);
return k%2==0 ? y*y : y*y*x;
}
double myPow(double x, int n) {
long long N=n;
return N>0 ? myQuick(x,N) : 1.0/myQuick(x,-N);
}
};
快速幂+迭代:
class Solution {
public:
double myPow(double x, int n) {
if(n==0)
return 1.0;
if(x==0)
return 0;
double ans=1.0;
long long b=n; //因为int是正数时补码为本身,如果是负数补码,改变符号之后需要加1,如果传进来的是(-2)的32次方,去反之后就会超出int,所以要用long long来扩大类型
if(n<0){
x=1/x; //这里是直接先取倒数,再计算倒数的n次方
b=-b;
}
while(b>0){
if(b&1==1) //如果b最后一位为1,就乘在最后的结果中,是0的话不用算到结果里
ans*=x;
x*=x;
b>>=1; //右移运算符可以看做删除最后一位,把低位最后一个移除,高位正数补0,负数补1
}
return ans;
}
};
左移和右移运算具体内容可以看:左移和右移的算法
边栏推荐
- glusterfs 搭建使用
- tensorflow-gpu2.4.1安装配置详细步骤
- tRNA修饰2-甲基胞嘧啶(m2C)|tRNA修饰m2G (N2-methylguanosine)
- ThreadLocal详解
- Hinton2022年RobotBrains访谈记录
- Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
- PHP according to the longitude and latitude calculated distance two points
- 友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
- Detailed explanation of JWT
- Anaconda 虚拟环境迁移
猜你喜欢
随机推荐
利用net-snmp的库实现snmpget,snmpset
「学习笔记」高斯消元
Auto.js脚本程序打包
不知道这4种缓存模式,敢说懂缓存吗?
染料修饰核酸RNA|[email protected] 610/[email protected] 594/Alexa 56
JS 内置构造函数 扩展 prototype 继承 借用构造函数 组合式 原型式creat 寄生式 寄生组合式 call apply instanceof
怎么将自己新文章自动推送给自己的粉丝(巨简单,学不会来打我)
华为设备配置VRRP负载分担
按需视觉识别:愿景和初步方案
钱江摩托某型号产品ECU货不对版 消费者知情权应如何保障?
【leetcode】剑指 Offer II 007. 数组中和为 0 的三个数(双指针)
(十六)51单片机——红外遥控
Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
演讲议题及嘉宾重磅揭晓,TDengine 开发者大会推动数据技术“破局”
Detailed AST abstract syntax tree
Kubernetes资源编排系列之三: Kustomize篇 作者 艄公(杨京华) 雪尧(郭耀星)
一种能有效缓解环境噪声对音频质量干扰的方案
汉源高科8光口12电口交换机千兆8光8电12电16电网管型工业以太网交换机
子树的大小