http://acm.hdu.edu.cn/showproblem.php?pid=1097
思路:只算a的最后一位的b次方就可以了,算的中间结果也只取最后一位继续…… 然后就会出现循环
比如8的800次方,8^1 % 10 = 8; 8^2 % 10 = 4; 8^3 % 10 = (8^2%10) *8%10 = 6; .................. 循环是 8,4,2,6,8,4,2,6.....
/*
* http://acm.hdu.edu.cn/showproblem.php?pid=1097
*
*/
#include <iostream>
using namespace std;
int main()
{
//freopen("E:\\input.txt", "r", stdin);
int a,b;
int loop[10];
while(cin>>a>>b)
{
a %= 10;
loop[0] = a;
loop[1] = a*a % 10;
int i = 1;
while(1)
{
if(loop[i] == a)
break;
else
loop[++i] = loop[i-1]*a % 10;
}
if(b%i == 0)
cout << loop[i-1];
else
cout << loop[b%i-1];
cout << endl;
}
return 0;
}