hdu1061Rightmost Digit(快速幂模板题)

xiaoxiao2021-02-27  402

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

做数学题可以找规律!

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

过了 0ms  太惊讶了

代码:

#include<iostream> #include<cstdio> #include<cmath> using namespace std; #define ll __int64 ll 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)); } }

转载请注明原文地址: https://www.6miu.com/read-2780.html

最新回复(0)