递归排序的时间复杂度,递归爬楼梯
实现pow(x,n),即计算x的整数幂函数(即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问题的递归解是针对pow(x,n)的
如果N为0,则返回1,如果N为1,则返回x,如果N==2,则返回x*x,如果N小于0,则x=1.0/x,并且:如果N为INT_MIN,则返回x*pow(x,(N-1)*-1),因为INT_MIN直接*-1会导致溢出,否则,返回my。
类别解决方案{
公共:
double myPow(double x,int n) {
如果(n==0)
{
返回1;
}
如果(n==1)
{
返回x;
}
如果(n==2)
{
返回x * x
}
如果(n ^ 0)
{
x=1.0/x;
if (n==INT_MIN)
{
返回x*myPow(x,(n ^ 1)*-1);//-防止溢出
}
返回myPow(x,n *-1);
}
if (n % 2==1)
{
返回x*myPow(x,n-1);
}
返回myPow(x*x,n/2);
}
};
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。