Tak, z tym, że wyniki rzędu jedności potęg nie wszystkich cyfr powtarzają się co 4, ale więcej nie napiszę, żeby Ci nie zabierać frajdy i satysfakcji z samodzielnego dochodzenia do rozwiązania. Co do tego jedynego sposobu na rozwiązanie, ten jest jedynym działającym, z którym się spotkałem(pisząc i potem patrząc w parę kodów tutaj), ale może są jakieś inne. Jeśli chodzi o to "czytanie książki", to się powtórzę, ale polecam, z autopsji. Obecnie czytam symfonię c++ i choć na pierwszy rzut oka wszystkie poruszane tematy są oczywiste, co chwila się czegoś dowiaduję czytając to. Trochę się pomądrowałem, ale może znajdziesz w tej wypowiedzi przydatne dla siebie rzeczy. Pozdro:)
Może mi ktoś powiedzieć, czy moje rozwiązanie jest dobre... Tzn testy przechodzą, ale nie wiem czemu dopiero przy zmodulowaniu wykładnika przez 20 testy przechodzą... Czy okres liczby jedności w wszystkich potęgach jest 20 lub jego dzielnikiem?
Summary
include
using namespace std;
long long int pot(int a,int b)
{
if(b==1)return a%10;
else return (a*pot(a,b-1))%10;
}
int main()
{
int x,y,z;
cin>>x;
for(int i=0;i<x;i++)
{
cin>>y>>z;
y=y%10;
z=z%20;
if(z!=0)cout<<pot(y,z)<<endl;
else cout<<"1"<<endl;
}
return 0;
}
Co jest złego z tym kodem? (Jeśli zamierzasz odpowiedzieć poczytaj u góry to oszczędź klawiatury i nie odpisuj ;] )
include
include
using namespace std;
unsigned long long a,b,temp,wynik,ile;
int main()
{
cin>>ile;
for(unsigned int i=1; i<=ile; i++)
{
cin>>a>>b;
temp=pow(a,b);
if(b==1)
{
wynik=a;
}
if (b==0)
{
wynik=1;
}
else{
wynik=temp%10;
}
cout<<wynik;
}
return 0;
}
`
nic nie jest złego - tyle, że poprawnie rozwiązuje tylko niewielki podzbiór możliwych zestawów danych
oczywiście informacja, dlaczego tak się dzieje jest gdzieś powyżej w tym wątku.
z twojego komentarza rozumiem, że nie masz czasu, aby przeczytać cały wątek (lub nie rozumiesz co czytasz)
ja natomiast nie mam czasu po raz n-ty tłumaczyć podstawowych rzeczy
pozdrawiam, i życzę powodzenia
Czy mógłby ktoś mi podpowiedzieć dlaczego sędzia nie akceptuje takiego rozwiązania? Dla jakiego przypadku działa niepoprawnie?
zwykłe lenistwo, zamiast uruchomić prosty przykład na ideone49, łatwiej od razu na forum zadać pytanie ?
Witam,
poczytałem wszystkie wątki i już mam pomysł na inne rozwiązanie z case'ami jednak zapisałem to inaczej link14 i zastanawiam się dlaczego mi nie przechodzi.
Wykonałem wszystkie testy jakie tu podajecie i zawsze miałem prawidłową odpowiedź a mimo to dostaję od sędziego błędną odpowiedź
Byłbym wdzięczny za wskazówkę co zrobiłem nie tak.
Możesz jaśniej? Bo nie rozumiem.
W 52 jest o if a==0 <- co z założenia jest niepotrzebne, bo liczby są z zakresu 1 <= a <= 1000000000 a w sytuacji a==1 to moje rozwiązanie też powinno zadziałać; niemniej jednak dodałem if'a dla a==1, ale sędzie i tak nie przepuszcza.
Nie rozumiem, z czym sędzia ma w tej sytuacji problem.
Proszę o wyjaśnienie, nie rozwiązanie, bo chcę zrozumieć co jest złego w moim kodzie. Koduję dopiero tydzień, więc proszę o wzięcie tego pod uwagę przy pisaniu
Z góry dziękuję za pomoc.
Witam, u mnie test z postu 53 daje tyle wyników ile trzeba, natomiast mam problem z innym testem wypisanym tutaj,
http://ideone.com/tnXXKq16
Czy moglibyście dać jakaś podpowiedź co jest źle bo już mam załamkę?
dane wejściowe są z poza zakresu podanego w zadaniu i z poza zakresu int-a
zaś w przypadku używania cin, jeżeli wczytywana liczba przekracza zakres typu, to skutkuje to zniszczeniem strumienia wejściowego
dla tego testu zamiast 2321323123 wczytywane jest 2147483647 (max dla int-a), a później wczytywane wartości to same 0
Witam, kod wydaje mi się dobry ale nie chce przejść więc coś musi być nie tak... Proszę o pomoc z tym
include
include
using namespace std;
int main()
{
int n;
cin>>n;
unsigned long long int a,b;
for(int i=0; i<n; i++)
{cin>>a;
cin>>b;
switch (a%10)
{
case 1: cout<<1<<endl; break;
case 2:
{ int tmp=b - 4*((b-1)/4);
if(tmp==4 )
cout<<6<<endl;
else if (tmp==1)
cout<<2<<endl;
else if (tmp==2)
cout<<4<<endl;
else if (tmp==3)
cout<<8<<endl;
break;
}
case 3: { int tmp=b - 3*((b-1)/3);
if(tmp==1 )
cout<<3<<endl;
else if (tmp==2)
cout<<9<<endl;
else if (tmp==3)
cout<<7<<endl;
break;
}
case 4:
{ int tmp=b - 2*((b-1)/2);
if(tmp==1 )
cout<<4<<endl;
else if (tmp==2)
cout<<6<<endl;
break;
}
case 5: cout<<5<<endl; break;
case 6: cout<<6<<endl; break;
case 7:
{ int tmp=b - 4*((b-1)/4);
if(tmp==1 )
cout<<7<<endl;
else if (tmp==2)
cout<<9<<endl;
else if (tmp==3)
cout<<3<<endl;
else if (tmp==4)
cout<<1<<endl;
break;
}
case 8:
{ int tmp=b - 4*((b-1)/4);
if(tmp==1 )
cout<<8<<endl;
else if (tmp==2)
cout<<4<<endl;
else if (tmp==3)
cout<<2<<endl;
else if (tmp==4)
cout<<6<<endl;
break;
}
case 9:
{ int tmp=b - 2*((b-1)/2);
if(tmp==1 )
cout<<9<<endl;
else if (tmp==2)
cout<<1<<endl;
break;
}
case 0: cout<<0<<endl; break;
}
}
return 0;
}