Hej ,w temacie powiadomiłem że zadanie jest z serwisu SPOJ by każdy mógł stworzyć algorytm samemu ...
Problem dotyczy tego zadania z serwisu : http://pl.spoj.com/problems/PA05_POT/ . Mianowicie stworzyłem taki programik jednak sędzia ogłasza że występuje zła odpowiedź ,przeszukiwałem cały program i nie wiem gdzie jest błąd . Przypuszczam że może on wynikać z tego iż cały ten algorytm to masa instrukcji warunkowych a bardziej chodziło o uniwersalne wyliczenia . Wiem że jest wiele takich postów ale nie znalazłem takiego kodu jak ja mam .
Dziękuje za pomoc i pozdrawiam
oto kod:
#include <iostream>
using namespace std;
int main()
{
int d;
int a, b; //a^b
cin>>d;
for(int i=0; i<d; i++) //wybrana ilosc prob
{
cin>>a>>b;
int ostatnia = a%10; //ostatnia cyfra
if(b==0) cout<<1<<endl; //wszystko podniesione do potegi zerowej daje jeden
else if(ostatnia==0||ostatnia==1||ostatnia==5||ostatnia==6) //tu bedzie sie konczyc ta sama cyfra
{
cout<<ostatnia<<endl;
}
else if(ostatnia==4||ostatnia==9) //gdy jest 4 lub 9 ostatnia liczba bedzie okresowa
{
int r = b%2;
switch(ostatnia){
case 4: {if(r!=0)cout<<4<<endl; else cout<<6<<endl;} break; //b parzyste i nie parzyste
case 9: {if(r!=0)cout<<9<<endl; else cout<<1<<endl;} break;
}
}
else
{
int r = b%4; //reszte z dzielenia wykladnika prze cztery
switch(r) //dalej z tabeli
{
case 1:
{
cout<<ostatnia<<endl;
}
break;
case 2:
{
if(ostatnia==2) cout<<4<<endl;
if(ostatnia==3) cout<<9<<endl;
if(ostatnia==7) cout<<9<<endl;
if(ostatnia==8) cout<<4<<endl;
}
case 3:
{
if(ostatnia==2) cout<<8<<endl;
if(ostatnia==3) cout<<7<<endl;
if(ostatnia==7) cout<<3<<endl;
if(ostatnia==8) cout<<2<<endl;
}
case 0:
{
if(ostatnia==2) cout<<6<<endl;
if(ostatnia==3) cout<<1<<endl;
if(ostatnia==7) cout<<1<<endl;
if(ostatnia==8) cout<<6<<endl;
}
}
}
}
return 0;
}