Algorytm Euklidesa

0
#include <iostream>

using namespace std;

int NWD(int a, int b)
{
    int c=a%b;

    if(b!=0) return NWD(b,c);
    else return a;

}

int main()
{
    int a,b;

    cout << "Podaj dwie liczby: ";
    cin >>a>>b;

    cout << "NWD(a,b)= "<<NWD(a,b);
    return 0;
}

Dlaczego, gdy wprowadzę zmienną c typu int to program wysypuje się? Wiem, że ta zmienna jest zbędna, gdyż mogę napisać po prostu return(b,a%b) ale zastanawia mnie fakt, czemu jak już jest ta zmienna, to program się wysypuje...

0

Wywal tę rekurencję bo wygląda to jak kod dla ludzi specjalnej troski.

https://pl.wikipedia.org/wiki/Algorytm_Euklidesa

1

Bo wtedy jest dzielenie przez 0.

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