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

NWD spoj nieprawidlowy algorytm

Object Storage Arubacloud
0 głosów
131 wizyt
pytanie zadane 21 marca 2017 w SPOJ przez chucksqll Stary wyjadacz (12,930 p.)
edycja 21 marca 2017 przez chucksqll

Witam. Spoj  wyświetla błędna odpowiedź, ja natomiast nie widzę błędu w moim rozumowaniu(chodzi o algorytm bo jak wstawiłem inny to zaakceptował). Jest to na podstawie algorytmu Euklides'a.Jedyne co przychodzi mi do głowy to kwestia gdy jakaś liczba jest równa 0, z góry dzięki za pomoc.


 int nwd(int a, int b)
 {
  do
  {                if((a==0)||(b!=0))
                a=b;
                else if((a!=0)||(b=0))
                    b=a;
      else if(a>b)
      a=a-b;
      else if(a<b)
        b=b-a;
 
  }while(a!=b);
 }

 
                 

1 odpowiedź

+1 głos
odpowiedź 25 marca 2017 przez BlackMoon Obywatel (1,730 p.)

1) Jeżeli używasz funkcji jakiegoś typu (np. int, float) to twoja funkcja musi zwracać jakąś wartość tego typu. Brakuje tu więc słowa kluczowego "return".
2) Zauważ, że gdy program zaczyna analizować twój pierwszy warunek if((a==0)||(b!0)) i gdy go spełni to pomija wszystkie pozostałe warunki, gdyż użyłeś przed nimi else. Program więc przypisuje wartość b do a (czyli obecnie są one tą samą liczbą) po czym omija wszystkie else i sprawdza warunek w while(a!=b), ponieważ są one równe (a==b) to kończy pętle.
Tak samo sytuacja będzie wyglądać, gdy program ominie pierwszy if i przejdzie do drugiego if((a!=0))||(b=0)) (źle zapisałeś b=0, powinno być wg twojego rozumowania b==0). Tutaj program zrobi dokładnie to samo - sprawi, że a i b będą miały te same wartości po czym przeskoczy do warunku while(a!=b) który jest spełniony, gdyż obecnie (a==b) i przerwie pętle.

Nice try tho wink

Podobne pytania

0 głosów
1 odpowiedź 264 wizyt
pytanie zadane 15 grudnia 2022 w SPOJ przez Pan_Blazej Nowicjusz (180 p.)
0 głosów
1 odpowiedź 249 wizyt
0 głosów
0 odpowiedzi 332 wizyt
pytanie zadane 14 maja 2018 w SPOJ przez coderCpp93 Gaduła (4,200 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 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!

...