Aktywne Wpisy
Beesly +4
Dajcie jakąś fajną nazwę na gabinet weterynaryjny dla psów i kotków ( ͡° ͜ʖ ͡°)
#kiciochpyta #pytanie #rozowepaski #psy #koty #smiesznypiesek #zwierzaczki
#kiciochpyta #pytanie #rozowepaski #psy #koty #smiesznypiesek #zwierzaczki
danek01 +644
Chciałbym przypomnieć wam to złoto w wykonaniu #maxkolonko xD
Czasami nawija jak #testoviron
#kolonko
Czasami nawija jak #testoviron
#kolonko
Mirki, byłby ktoś tak dobry i wytłumaczył mi dlaczego ten kod działa:
int mait();
{
unsigned t,p,w;
for(cin>>t;t--;cout<<((int)pow(p%10,1+(3+w)%4))%10<>p>>w;
return 0;
}
t - liczba testów, p - podstawa potęgi, w - wykładnik. Jestem początkujący. Jest to jedno z zadań ze SPOJa ale konkretna treść nie ma znaczenia. I stety/niestety szukając pomocy trafiłem na gotowe rozwiązanie. Do sedna. Próbuje w 100% zrozumieć działanie tej pętli. Bo wygląda ona nieco "dziwnie" w porównaniu do tych podstawowych. Próbuję ją napisać po swojemu - też nie idzie. A nie wrzucę przecież tego na SPOJa żeby mieć zaliczone zadanie :D
cin >> t;
while (t > 0) {
t = t - 1;
cout << (p%10 do potęgi 1+(3+w)%4) % 10
}
@idler: a dlaczego miałby nie działać? Zobacz sobie co się wsadza do pętli for i porównaj z tym co jest napisane w tym programie.
for (instrukcja_inicjalizująca ; warunek ; instrukcja wykonywania po każdej iteracji)
@idler: dekrementacja, która jest również warunkiem
int main()
{
unsigned t,p,w;
cin>>t;
for (t;t--;)
{
cin>>p>>w;
cout<<((int)pow(p%10,1+(3+w)%4))%10<0; t--;) to też działa ale przy (t; t>=0; t--;) pętla hula w nieskończoność. :D
@idler: no to źle przeczytałeś, bo jest warunek.
bo masz unsigned
A co do warunku to nie mam pomysłu. return 0; ??
1. W for możesz pominąć dowolny element, po prostu go nie wstawiając. I tak np.
for(;;)
będzie pętlą nieskończoną. Natomiastint i = 4; for(;--i;);
ma takie samo działanie jakfor(int i = 4; --i;)
. Różnica jest taka, że w drugim przypadku scope (zakres) zmiennej i jest tylko wewnątrz ciała pętli.2.
for (int i = 5; --i;)
wywoła pętle for aż warunek stopu, czyli środkowy element for-a (doA drugie pytanie: jak to jest z tym umieszczeniem cout'a w nagłówku pętli zamiast w ciele skoro ma to być niejako wynikiem działania pętli? Tego jeszcze do końca nie rozumiem.
attr for (init ; condition ; expr) statement
(Pomijamy to, czym jest attr, ale jeśli chcesz doczytać, to proszę bardzo: http://en.cppreference.com/w/cpp/language/attributes
"expr" - ostatni element nagłówka for-a (czyli ten cout) jest po prostu wyrażeniem, które ma się wykonać po ciele pętli określonej przez "statement". Innymi słowy, takiego for-a możemy zapisać w postaci równoważnej pętli while:
{
init ;
while (condition)
{
statement
expr ;