Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

SPOJ skracanie czasu wykonania programu

Ostatnio zmodyfikowano 2016-06-06 16:36
Autor Wiadomość
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/).

C/C++
#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 :).
P-148905
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.
P-148906
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?
P-148911
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 ?
P-148912
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?
P-148915
BadBullPL
» 2016-06-06 15:18:07
Spójrz na dwie ostatnie cyfry
P-148916
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?
P-148918
mateczek
» 2016-06-06 16:32:19
P-148919
« 1 » 2
  Strona 1 z 2 Następna strona