Funkcja czasami gubi wartość
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Funkcja czasami gubi wartość

AutorWiadomość
Temat założony przez niniejszego użytkownika
Funkcja czasami gubi wartość
» 2018-06-01 15:27:56
Cześć, mam pewien problem z funkcji. Funkcja czasami wyświetla NWD jako 0 mimo że jest to nie prawda. Ktoś jest w stanie powiedzieć mi czemu tak się dzieje?

Oto kod:
C/C++
void euklides3( int a, int b ) {
    int licznik = 0;
    int wynik = 1;
    while( b > 0 ) {
        if( a < b ) {
            swap( a, b );
        }
       
        if( a % 2 == 0 && b % 2 == 0 ) {
            wynik *= 0;
            a /= 2;
            b /= 2;
            licznik++;
        }
        else {
            if( a % 2 == 0 && b % 2 != 0 ) {
                a /= 2;
                licznik++;
            }
            else if( a % 2 != 0 && b % 2 == 0 ) {
                b /= 2;
                licznik++;
            }
            else {
                a -= b;
                licznik++;
            }
           
        }
    }
    wynik *= a;
    cout << "Licznik 2" << endl << "NWD: " << wynik << " Ilosc obrotow petli: " << licznik << endl;
}
P-171319
» 2018-06-01 16:13:52
C/C++
if( a % 2 == 0 && b % 2 == 0 ) {
    wynik *= 0;
    a /= 2;
    b /= 2;
    licznik++;
}
Dlaczego zerujesz wynik? I dlaczego robisz to za pomocą mnożenia?
P-171320
Temat założony przez niniejszego użytkownika
» 2018-06-01 16:20:56
No i wszystko jasne, przeglądałem kod z 10 raz a tego nie wychwyciłem. Dzięki za pomoc. Temat do zamknięcia.
P-171321
« 1 »
 Strona 1 z 1