Wątek przeniesiony 2020-09-20 23:38 z Algorytmy i struktury danych przez Ktos.

Błąd Kompilacji - algorytm NWD

0

****Jest do napisania taki algorytm : ******
Wie ktoś czemu wystąpił Błąd Kompilacji

Napisz funkcję:

int nwd(int a, int b);
która oblicza największy wspólny dzielnik liczb a i b,

0 <= a,b <= 1000000
Input

W pierwszej linii liczba testów t, w kolejnych liniach po dwie liczby w każdym wierszu.

Output
W każdej linii jedna liczba - wynik działania funkcji nwd

Example
Input:
5
1 4
4 1
12 48
48 100
123456 653421

Output:
1
1
12
4
3
/********************************************************************************************************/

#include <iostream>
using namespace std;

int nwd(int a, int b);

int main()
{
    int t;
    cin >> t;

    for(int i = 0;i<t;i++)
    {
        int c,d;
        cin >> c >> d;
        cout << nwd(c,d);
    }
    return 0;
}

int nwd(int a, int b)
{
    if(a < b)
        swap(a,b);
    if(b == 0)
        return a;
    return nwd(b, a % b);
}
3

swap wymaga #include <algorithm>. U ciebie pewnie przypadku iostream includuje też algorithm, ale to żadna reguła.

1

Tak przy okazji: std::gcd()

3

Nie wypisujesz nowych linii i spacji. Dane wyjściowe dla przykładu wskazują, że są potrzebne.
Uruchomileś to w ogóle lokalnie czy wysłałeś na pałkę?

5

kompilator nie pokazuje żadnego błędu i działa elegancko ale na SPOJ wyskakuje błąd

Bo brakuje ci znaku końca linii w odpowiedzi.
Po naprawie wygląda dobrze i kompiluje się na wszystkich głównych kompilatorach.
https://godbolt.org/z/hanqjz

1 użytkowników online, w tym zalogowanych: 0, gości: 1