基于二进制递归的解题思路
#include<iostream>
using namespace std;
long long a,b;
int p;
long long pow_mod(long long a,long long b,int p){
long long res=1,tmp;
tmp=a;
for(;b;b>>=1){
if(b&1){
res=res*tmp%p;
}
tmp=tmp*tmp%p;
}
return res;
}
int main()
{
cin>>a>>b>>p;
a%=p;
cout<<pow_mod(a,b,p)<<endl;
return 0;
}
0.0分
0 人评分
程序员的表白 (C语言代码)浏览:1333 |
高精度加法 (C++代码)(大数加法)浏览:936 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1537 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:436 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:772 |
printf基础练习2 (C语言代码)浏览:754 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:602 |
1009题解浏览:752 |
1035 题解浏览:786 |
交换Easy (C语言代码)浏览:764 |