基准时间限制:1 秒 空间限制:131072 KB 分值: 0
难度:基础题
给出3个正整数A B C,求A^B Mod C。
例如,3 5 8,3^5 Mod 8 = 3。
Input
3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)
Output
输出计算结果
Input示例
3 5 8
Output示例
3
运算符优先级如下表:
题解:
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <vector> #include <set> #include <map> #define LL long long using namespace std; /*LL quickPow(LL a,LL b,LL c){ LL ans=1,base=a; while(b){ if(b&1) ans*=base%c;//应该是这里错了,错在运算符优先级 base*=base%c; b>>=1; } return ans%c; }*/ LL quickPow(LL a,LL b,LL c){ LL ans=1,base=a; while(b){ if(b&1) ans=ans*base%c;//AC了 base=base*base%c; b>>=1; } return ans; } int main() { LL a,b,c; cin>>a>>b>>c; //while(cin>>a>>b>>c){ a%=c; LL ans=quickPow(a,b,c); cout<<ans<<endl; //} return 0; }