CH0101 a^b 快速幂
数据有点问题,题目明确说了a,b,p大于0 ,可样例中还有0
ac代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<iostream> using namespace std; typedef long long ll; ll a, b, p; ll pow(ll a, ll b, ll p){ ll ans = 1%p; //样例:123456789 0 1 输出:0 ,若不加%p,则输出1 while (b){ if (b & 1) ans = ans*a%p; //b&1运算可以取出b在二进制表示下的最低位 a = a*a%p; b >>= 1; //舍去最低位 } return ans; } int main() { cin >> a >> b >> p; cout << pow(a, b, p) << endl; return 0; }