Wiem, że pojawił się gdzieś kiedyś taki wątek na temat tego zadania, ale podszedłem do niego ciutke inaczej. Ogólnie kod chodzi dobrze i wyniki są poprawne, jednak spoj wyrzuca mi przekroczenie limitu czasowego. I moje pytanie brzmi: Czy można rozwiązać ten problem w podobny sposób, czy musze jednak zrobić to inaczej, aby zmieścić sie w limicie czasowym ?
#include <iostream>
#include <sstream>
using namespace std;
int potegowanie ( int a, int b)
{
if(b==0)
{
return 1;
}
else
{
return a * potegowanie(a, b-1);
}
}
void wypisz(int a, int b)
{
int num = potegowanie(a,b);
ostringstream buf;
buf << num;
string str = buf.str();
cout << str[str.size()-1];
}
int main()
{
int d;
cin >> d;
int podstawa [d];
int wykladnik [d] ;
int i;
for (i=0; i<d; i++)
{
cin >> podstawa [i] >> wykladnik[i];
}
for (i=0; i<d; i++)
{
wypisz(podstawa[i],wykladnik[i]);
cout << endl;
}
return 0;
}