noip2013提高组day1第一题-转圈游戏——快速幂典型应用

时间:2023-11-18 08:11:20

noip2013提高组day1第一题-转圈游戏——快速幂典型应用

noip2013提高组day1第一题-转圈游戏——快速幂典型应用

所谓的快速幂:

 // 计算 m^n  % k 的快速幂算法
int quickpow(int m,int n,int k)
{
int b = ;
while (n > )
{
if (n & )
b = (b*m)%k;
n = n >> ;
m = (m*m)%k;
}
return b;
}

借助于上面的函数,本题目很容易就可以解决:

 int main()
{
int n,m,x,k,data;
scanf("%d%d%d%d",&n,&m,&k,&x);
data=quickpow(,k,n);
printf("%d\n",(x+(m*data)%n)%n);
return ;
}