0x01 基本算法-位运算 a^b
标签:include 简单 ace inf 模板题 图片 names return https
题目链接:a^b
题目分析:
简单数论,快速幂模板题
代码如下:
#include
using namespace std;
#define mm(a,x) memset(a,x,sizeof a)
#define mk make_pair
#define ll long long
#define pii pair
#define inf 0x3f3f3f3f
ll a,b,mod;
ll qmi(ll a,ll b){
ll ans = 1 % mod;
// Eg:b是a的k次方的中的k的二进制表示 (k = (10110)2) a^k = a^2^0+a^2^1+a^2^2+...a^2^n
while(b){
//如果b的二进制数最后一位是1
if(b&1) ans = ans * a % mod;
//a的k次方
a = a * a % mod;
//将b的最后一位数去掉
b>>=1;
}
return ans;
}
int main() {
cin >> a >> b >> mod;
cout
0x01 基本算法-位运算 a^b
标签:include 简单 ace inf 模板题 图片 names return https
原文地址:https://www.cnblogs.com/bingers/p/13974985.html
评论