hdu 1097 A hard puzzle(快速幂取模模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=1097
快速幂取模我理解就是将其幂不断的二分后往前推得过程,奇数的时候先分出一个来变成偶数。。。
杭电怎么不认识long long了??改成__int64就对了。。
#include <iostream> #include <cstdio> using namespace std; __int64 result(__int64 a,__int64 b,int m) { long long d,t; d=1; t=a; while (b>0) { if (b%2==1) d=(d*t)%m; b/=2; t=(t*t)%m; } return d; } int main() { __int64 a,b; while(~scanf("%I64d%I64d",&a,&b)) { printf("%I64d\n",result(a,b,10)); } return 0; }