//快速幂 位运算版本
#include<iostream>
using namespace std;
typedef long long ll;
ll f(ll a,ll b, ll mod)
{
int t=1,y=a;
while(b!=0)
{
if(b&1)
t=t*y%mod;
y=y*y%mod;
b=b>>1;
}
return t;
}
int main()
{
int x,y,mod;
x=5;
y=5;
mod=100000;
cout<<f(x,y,mod)<<endl;
return 0;
}
解题代码
//快速幂 位运算版本
#include<iostream>
using namespace std;
typedef long long ll;
const ll m = 1e12;
ll f(ll a,ll b, ll mod)
{
ll t=1,y=a;
while(b!=0)
{
if(b&1)
t=t*y%mod;
y=y*y%mod;
b=b>>1;
}
return t;
}
//reference to 'max' is ambiguous 是模糊的 不能定义max,改为m就好了
int main()
{
ll sum=0,mod=10086;
ll n = f(10,12,mod);
for(ll i=1;i<=n;i++)
{
sum+=f(i,2019,mod);
}
cout<<sum%mod<<endl;
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92924.html