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

Przekroczenie czasu w zadaniu NWD

Ostatnio zmodyfikowano 2015-08-02 22:31
Autor Wiadomość
Asahel
Temat założony przez niniejszego użytkownika
Przekroczenie czasu w zadaniu NWD
» 2015-08-02 19:18:21
Witam, spoj nie akceptuje mojego rozwiązania pomimo, że wychodzą mi dobre wyniki. Wyświetla się w serwisie komunikat o przekroczeniu limitu czasu. Proszę o pomoc. Treść zadania znajduje się pod tym adresem http://pl.spoj.com/problems​/PP0501A/.

C/C++
#include <iostream>

using namespace std;

//funkcja obliczająca nwd
int nwd( int a, int b )
{
    int r, i, n;
   
    if( a <= b ) n = a;
    else n = b;
   
    for( i = 1; i <= n; i++ )
    {
        if( a % i == 0 && b % i == 0 )
             r = i;
       
    }
    return r;
}

int main()
{
    int t, k;
    //t to licba wywołań funkcji nwd(a,b)
    cin >> t;
    for( k = 1; k <= t; k++ )
    {
        int a, b;
        cin >> a >> b;
        cout << nwd( a, b ) << endl;
    }
P-135613
michal11
» 2015-08-02 19:54:04
Jeszcze dobrze by było jak byś wkleił treść zadania.
P-135616
Asahel
Temat założony przez niniejszego użytkownika
» 2015-08-02 19:58:30
Treść zadania znajduje się pod tym adresem http://pl.spoj.com/problems​/PP0501A/.
P-135618
pekfos
» 2015-08-02 20:53:32
Obliczaj NWD z algorytmu Euklidesa. Twoje rozwiązanie jest pewnie za wolne. Jeśli i to nie pomoże, przerzuć się na i/o z C (Co w sumie nie powinno być potrzebne, bo użyłeś najgorszego sensownego podejścia do problemu NWD).
P-135622
Rashmistrz
» 2015-08-02 20:58:21
Twoje rozwiązanie nie jest dobrym rozwiązaniem.
Przeszukujesz możliwy zbiór od 0 do max(a, b),
czyli na siłę próbujesz znaleźć wynik,
a to nie tak ma być...
_________________________________________________

Ahhhhhh, dzięki Pekfos...
P-135623
Asahel
Temat założony przez niniejszego użytkownika
» 2015-08-02 22:31:18
Skorzystałem z algorytmu Euklidesa i działa.
P-135628
« 1 »
  Strona 1 z 1