• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

NWD - algorytm

Object Storage Arubacloud
0 głosów
405 wizyt
pytanie zadane 1 stycznia 2016 w C i C++ przez agre Użytkownik (550 p.)
while (b)
        swap(a %= b, b);
    return a;

 

Ten algorytm wyznacza NWD, ale kompletnie go do końca zrozumieć. Tzn, wcześniej usiłowałam zrobić to za pomocą modulo i dwóch if, ale nie był to zbyt optymalny kod.

while (b) // co oznacza ten zapis, na jakiej zasadzie pętla jest zależna od b?

swap(a %= b, b); //dzięki modulo na samym końcu, wychodzi wynik i 0. Matematycznie wszystko wygląda w porządku, ale sama praca pętli już nie jest taka jasna.

Czy ktoś mógłby pomóc mi to rozszyfrować? :)

1 odpowiedź

0 głosów
odpowiedź 1 stycznia 2016 przez niezalogowany
wybrane 2 stycznia 2016 przez agre
 
Najlepsza
W C/C++ wartości różne od 0 oznaczają true, czyli tutaj pętla while wykonuje się dopóki b != 0.

Tutaj masz najpierw wykonanie działania modulo (oraz przypisanie wyniku do zmiennej a), następnie wartości zmiennych a i b są zamieniane ze sobą.
komentarz 1 stycznia 2016 przez niezalogowany

Alternatywny sposób zapisu tego samego kodu:

while( b != 0)
{
  a = a % b;
  swap( a, b );
}

 

Podobne pytania

0 głosów
0 odpowiedzi 686 wizyt
0 głosów
1 odpowiedź 133 wizyt
pytanie zadane 21 marca 2017 w SPOJ przez chucksqll Stary wyjadacz (12,930 p.)
0 głosów
1 odpowiedź 267 wizyt
pytanie zadane 15 grudnia 2022 w SPOJ przez Pan_Blazej Nowicjusz (180 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...