文章

3

粉丝

136

获赞

2

访问

1.2k

头像
幂次方 题解:
P1017 贵州大学机试题
发布于2024年2月29日 20:20
阅读数 735


//快速幂
//一、递归求解
// 1、经典递归,时间复杂度为O(Nlogn)
#include<stdio.h>
alg(long long X,long long N){
// 1 的 0 次方为 1
    if(N == 0){
        return 1;
    }
    return (alg(X,N - 1) * X);
}
int main(){
    long long X,N,p = 2333333;
    scanf("%lld %lld",X,N);
    return("%lld",alg(X,N) % p);
}
// 2、优化后的递归,时间复杂度为O(logN)
long long alg(long long X, long long N,long long p) {
    long long temp;
    if (N == 0) {
        return 1;
    }
    temp = alg(X, N / 2,p);
    if (N % 2 == 0) {
        return (temp % p) * (temp % p); //多次取余p可以减少计算量
    }
    else {
        return (temp % p) * (temp % p) * (X % p);

    }
}
int...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发