文章
3
粉丝
136
获赞
2
访问
2.2k
//快速幂
//一、递归求解
// 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...
登录后发布评论
暂无评论,来抢沙发