SPOJ skracanie czasu wykonania programu
Ostatnio zmodyfikowano 2016-06-06 16:36
KingFromAfrica Temat założony przez niniejszego użytkownika |
SPOJ skracanie czasu wykonania programu » 2016-06-06 12:22:34 Witam, otóż mam taki mały problem: jestem początkujący i chcąc poprawić swoje umiejętności zacząłem się coś tam bawić w SPOJ'u . Jednak mam duży problem z czasem wykonania programów, który bez przerwy jest zbyt duży, żeby zadanie zostało zaliczone.Poniżej zamieszczam kod do zadania z silniami,który działa jak powinien tylko trochę za wolno (link do zadania-http://pl.spoj.com/problems/FCTRL3/). #include<iostream>
using namespace std;
int liczbaJednosci( int b ) { int a; if( b < 100 ) return b % 10; else if( b > 100 ) a = b / 10; return b % a; }
int liczbaDziesiatek( int b ) { int a; if( b < 100 ) return b / 10; else if( b > 100 ) a = b / 10; return a % 10; }
int main()
{ int c, n, g( 1 ), a( 1 ), b( 1 ); cin >> c; for( int i = 0; i < c; i++ ) { cin >> n; do { b *= a; a++; } while( a <= n ); cout << liczbaDziesiatek( b ) << " " << liczbaJednosci( b ) << endl; } return 0; } Macie pomysł co tu zmienić, usunąć aby zmniejszyć czas wykonywania? Oraz jakieś ogólne wskazówki jak go zmniejszać? Pozdrawiam Szymon :). |
|
michal11 |
» 2016-06-06 13:05:01 Otwórz excella, wypisz sobie wyniki dla silni o 1 do 15 i dopiero później napisz program. |
|
KingFromAfrica Temat założony przez niniejszego użytkownika |
» 2016-06-06 13:50:43 Rozumiem,ale co w takim razie zrobić ? Ograniczyć silnie do 15? |
|
michal11 |
» 2016-06-06 13:59:54 No chyba jednak nie zrozumiałeś. Zrobiłeś to co napisałem ? Zauważyłeś coś interesującego ? |
|
KingFromAfrica Temat założony przez niniejszego użytkownika |
» 2016-06-06 14:58:15 Tak sprawdziłem wyniki silni nawet do 30 i widać,że już przy 15 osiąga wartość, która z tego co się nie mylę wykracza poza wartości inta? I z tego co rozumiem chodzi Ci o to,że one są już tak duże że spowalniają program? |
|
BadBullPL |
» 2016-06-06 15:18:07 Spójrz na dwie ostatnie cyfry
|
|
KingFromAfrica Temat założony przez niniejszego użytkownika |
» 2016-06-06 16:27:59 Aaaa rzeczywiście wystarczy zrobić silnie dla < 10 a dla wyższych już tylko 00? |
|
mateczek |
» 2016-06-06 16:32:19 |
|
« 1 » 2 |