let 50 Pow(x,n)

本文介绍了一种高效的计算x^n的方法——快速幂算法,并提供了一个Java实现示例。该算法通过位运算将指数n拆分为若干个2的幂次之和,从而大幅度减少乘法操作的次数。

主题思想: n 的取值范围 n<0, 0, n>0

快速幂算法
public double quickPow(double x,int n){
        if(n==0) return 1.0000;
        double ans=1.0;
        while(n!=0){

            if(n%2!=0){
                ans=ans*x;
            }
            x*=x;
            n/=2;
        }
        return ans;
    }

考虑问题:
AC代码:

class Solution {
    public double myPow(double x, int n) {

        boolean divide= n<0? true: false;
        n=Math.abs(n);
        double ans=quickPow(x,n);
        if(divide)
            ans=1.0/ans;
        return ans;
    }

    public double quickPow(double x,int n){
        if(n==0) return 1.0000;
        double ans=1.0;
        while(n!=0){

            if(n%2!=0){
                ans=ans*x;
            }
            x*=x;
            n/=2;
        }
        return ans;
    }
}
TScript 标准库文档 算术运算符 add(x,y) sub(x,y) mul(x,y) div(x,y) reverse(x) 关系运算符 greater(x,y) greaterEq(x,y) less(x,y) lessEq(x,y) eq(x,y) notEq(x,y) 逻辑运算符 and(x,y) or(x,y) not(x,y) 市场函数 capital() 引用函数 refBefore(x,n) (原 ref) refAfter(x,n)(原 refx) 指标函数 ma(x,n) ema(x,n) sma(x,n,m) dma(x,n) wma(x,n) zigzag(x,n,type) td(x) 数学函数 avg(x,...others) highest(x,n)(原 hhv) lowest(x,n)(原 llv) acos(x) asin(x) atan(x) cos(x) sin(x) tan(x) sqrt(x) exp(x) pow(x,n) ln(x) log10(x) abs(x) ceiling(x) floor(x) integer(x) max(x,y) min(x,y) mod(x,y) round(x) sign(x) std(x,n) stdp(x,n) var(x,n) varp(x,n) avgDev(x,n) devSqSum(x,n) slope(x,n) lrForcast(x,n) 统计函数 barsFromPrevTrue(x)(原 barsLast) barsToNextTrue(x)(原 barsNext) barsFromFirstTrue(x)(原 barsSince) barsToLastTrue(x) bars(x,n) lastValue(x)(原 getLastValue) barsFromHighest(x,n)(原 hhvBars) barsFromLowest(x,n)(原 llvBars) amp(x,y) barsSumUntil(x,n)(原 sumBars) barsToLast(x)(原 currBarsCount) barsFromFirst(x)(原 barsCount) sum(x,n) toprange(x) lowrange(x) winner(price) cost(pct) 判断函数 isLast(x) isBetween(x,y,z) isCrossUp(x,y) isLongCrossUp(x,y,n) isCrossDown(x,y) isCross(x,y) isEveryTrue(x,n) isAnyTrue(x,n) ifelse(c,x,y) 其他函数 source(topic) notify(topic,content,conditionText) exit() print(...args) backwardSet(x,n)(原 backSet) forwardSet(c,n)(原 filter) 画图函数 draw drawIf drawText drawNumber drawCandle drawCandleIf drawStickBetween drawStickBetweenIf drawBand drawBandIf drawHistogramBetween drawHistogramBetweenIf drawRectangle
最新发布
11-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值