Funkcja czasami gubi wartość
Ostatnio zmodyfikowano 2018-06-01 16:20
dartpizza88 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: 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; } |
|
jankowalski25 |
» 2018-06-01 16:13:52 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? |
|
dartpizza88 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. |
|
« 1 » |