hdu1061Rightmost Digit(快速幂模板题)

来源:互联网 发布:wow多相数据调查 编辑:程序博客网 时间:2024/06/06 00:36

想到了另一种做法加上:你求解这个末尾问题的时候,其实只有个位数做出了贡献,只要讨论个位数就可以了,然后你可以在纸上随便写写,就发现这个东西是有规律的。

做数学题可以找规律!

啊,题目就不赘述了,本来想加在另一篇博客里,结果修改不了了,尴尬。。。。。

过了 0ms  太惊讶了

代码:

#include<iostream>#include<cstdio>#include<cmath>using namespace std;#define ll __int64ll quickmul(ll x,ll y,ll Z)//大数相乘取模,非常快的一种乘法计算方式{    ll tmp=x/(long double)Z*y+1e-3;    return (x*y+Z-tmp*Z)%Z;}ll quickmod(ll a,ll b,ll c){    ll ans=1;    while(b){        if(b&1) ans=(ans*a)%c;        a=quickmul(a,a,c);        b>>=1;    }    return ans;}int main(){    int T;scanf("%d",&T);    while(T--){        ll x;scanf("%I64d",&x);        printf("%I64d\n",quickmod(x,x,10));    }}


0 0
原创粉丝点击