21 / 25
Jan 2015

To nie łatwiej tak:

cin >> liczba;
b = liczba % 10;

względnie tak:

int ostatnia(int liczba)
{
     return liczba % 10;
}

Jeśli wprowadzasz jakąś funkcję pomocniczą, to dobrze, żeby rzeczywiście pomagała - czy to wydajnościowo, czy jeśli chodzi o czytelność kodu. W tym przypadku w ogóle się to nie opłaca, bo dochodzi koszt wywołania, ponadto czytający musi skakać po kodzie, żeby zobaczyć, co robi Twoja dodatkowa funkcja.

Dokładnie tak.
Możesz nawet pójść jeszcze jeden albo dwa, trzy kroki dalej:
[bbone=cpp,2260] wynik = pow(liczba % 10, potega);
cout << ostatnia(wynik) << endl;[/bbone]
lub drugi krok:[bbone=cpp,2261] wynik = pow(liczba % 10, potega);
cout << wynik % 10 << endl;[/bbone]
trzeci:
[bbone=cpp,2262]cout << pow(liczba % 10, potega) % 10 << endl;[/bbone]
ale dla zakresu danych z zadania i tak pow się wysypie.

Musisz jeszcze w jakiś sposób "skrócić" wykładnik [potęgę], lub poczytać o szybkim potęgowaniu i możesz na jego bazie [algorytmie] rozwiązać to zadanie..

[tex]30^{30} = 205891132094649000000000000000000000000000000[/tex]

[tex]unsigned\; long\;long < 2^{64} = 18446744073709551616[/tex]

[tex]1\;000\;000\;000^{1\;000\;000\;000} = .............000\;000..........?????[/tex]

Tak, że nie, źle nie napisałeś, ale warto też czytać, także to co trochę wyżej już zostało napisane i warto też zaglądnąć do regulaminu - są tam też podpowiedzi, a nie od razu wrzucać pytanie.

27 days later

Mógłbyś napisać szerzej o co chodzi Ci w tym zdaniu? Bo mam wrażenie, że tutaj coś mieszasz, ale najpierw muszę byc pewny co to w ogóle oznacza stuck_out_tongue

12 months later