Ja zauważyłem że ostatnia cyfra przy potegowaniu powtaża się co 4 potege. Może też byc cały czas taka sama ale na pewno każda cyfra powtaża się co czwartą potęgę. Więc wymyśliłem tak:
#include <iostream>
using namespace std;
int a, b, ile;
int reszta;
int main()
{
cin >> ile;
for (int i=1; i<=ile; i++)
{
cin >> a >> b;
reszta=b%4;
switch(reszta)
{
case 0:
{
cout << (a*a*a*a)%10 << endl;
}
break;
case 1:
{
cout << a%10 << endl;
}
break;
case 2:
{
cout << (a*a)%10 << endl;
}
break;
case 3:
{
cout << (a*a*a)%10 << endl;
}
break;
}
}
cout << reszta << endl;
return 0;
}
Na kompilatorze działa, a SPOJ mówi o będnej odpowiedzi. Widzi ktoś błąd w moim rozumowaniu?