腿毛

  

    


 思路:

题目描述的很夸张,弄一堆什么腿毛围一圈做游戏(其实就是给定一个指定的位置,每次走 m ,一共走 10^k 次)然后问最后的位置。

考试的时候脑子不够用,还把转回来的周期算出来,但其实根本多余,只要记录出总共走的距离,膜上 n 就好,但问题是 10^9 ,朴素绝对会超,于是我们只要一个快速幂

快速幂代码

#include<stdio.h>
#define ll long long 
int n,m,k,x;

ll ksmi(ll a,ll d)
{
    ll s=1;
    while(d>0)
    {
        if(d&1) s=s*a%n;
        a=a*a%n;
        d>>=1;
    }
    return s%n;
}

int main()
{
    scanf("%d%d%d%d",&n,&m,&k,&x);
    printf("%d",(x+m*ksmi(10,k)%n)%n);
    return 0;
}
从0到1很难,但从1到100很容易
原文地址:https://www.cnblogs.com/qseer/p/9551379.html