幂次方 题解:数据类型统一longlong
虽然输入的x,n都是int范围内,但二分快速幂运算过程中a = (a*a)%233333;会导致a超出int范围,数据类型统一ll就不会有问题。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll binaryPow(ll a,ll b){
ll ans = 1;
while(b > 0){
if(b&1)
ans = (ans*a)%233333;
b >>= 1;
a = (a*a)%233333;
}
return ans;
}
int main(){
ll x,n;
cin >> x >> n;
cout << binaryPow(x,n);
return 0;
}
登录后发布评论
暂无评论,来抢沙发