Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

NWD n liczb całkowitych C++ -

elo812 03 Gru 2014 14:37 1200 11
  • #1 03 Gru 2014 14:37
    elo812
    Poziom 5  

    Mam do napisania program który obliczy NWD n liczb naturalnych całkowitych .
    W pierwszym wierszu wejścia znajdowac sie ma liczba n oznaczająca z ilu liczb chcemy obliczyć NWD np.
    4
    14 20 45 10
    w drugim wierszy maja znajdowac sie liczby ktorych NWD chcemy policzyć. Napisałem program , ale oblicz on NWD 2 liczb. Nie wiem jak sie zabrać za to zadanie dalej. Oto mój kod:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0 11
  • #2 03 Gru 2014 14:54
    leoha
    Poziom 16  

    Możesz skorzystać z zależności:
    nwd(a, b, c) = nwd(nwd(a, b), c)

    0
  • #3 03 Gru 2014 15:15
    elo812
    Poziom 5  

    Czyli? Możej to dokładniej wytłumaczyc? :)

    0
  • #4 03 Gru 2014 16:38
    IXOF
    Poziom 18  

    Nie jestem pewny czy to działa, bo sam to wymyśliłem :

    Dla n parzystego:

    nwd (a,b,c,d) = nwd [nwd(a,b) , nwd(c,d) ]



    Dla n nieparzystego:


    nwd (a,b,c,d,e) =

    liczymy nwd(a,b) ; nwd(c,d) ; (nwd(nwd(c,d) , e) ;

    no i wtedy nwd dla tych wszystkich liczb równa się nwd(nwd(a,b) , nwd(c,d) , nwd(nwd (c,d) , e ) )


    No i myśle, że jako arument dla nwd() powinieneś przekazywać dwie wartości :
    Tablice z liczbami dla których mamy policzyć nwd oraz n.

    0
  • #5 03 Gru 2014 18:45
    elo812
    Poziom 5  

    Jestem początkujący ktoś może mi pokazać jak to wprowadzić do kodu?

    0
  • #7 04 Gru 2014 21:13
    IXOF
    Poziom 18  

    Tak z ciekawości. Można wiedzieć gdzie wymagają takiego programu ? Nie jest on chyba dojść prosty, rzekł bym nawet , że jest trudny.


    Nie mniej jednak coś powoli skrobie, ale żeby to miało sens, to muszę wiedzieć, czy mój algorytm jest poprawny ;)

    Przedstawia go rysunek. Czerwone pola to liczby, dla których liczymy nwd. Niebieskie kreski to policzenie nwd dla danych dwóch liczb. Następnie liczmy nwd dla otrzymanych wyników i tak do skutku, aż otrzymamy jedną liczbą, tzn, jeżeli już nie będzie dla czego liczyć nwd :D

    Czy to ma racje bytu ?

    NWD n liczb całkowitych C++ -

    0
  • Pomocny post
    #8 05 Gru 2014 17:33
    IXOF
    Poziom 18  

    Nie jestem pewny, czy to działa :)
    Jednak trochę to pisałem i jeżeli działa, to liczę na "pomógł"

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #9 08 Gru 2014 16:53
    leoha
    Poziom 16  

    Niepotrzebnie skomplikowaliście tak proste zadanie:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Dodano po 1 [minuty]:

    IXOF napisał:
    Nie jest on chyba dojść prosty, rzekł bym nawet , że jest trudny.

    Rzekłbym, że jest trywialny.

    0
  • #10 15 Gru 2014 16:51
    Michał458
    Poziom 17  

    leoha napisał:
    Niepotrzebnie skomplikowaliście tak proste zadanie:


    Nie krytykuj innych bo sam skomplikowałeś :)

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #11 15 Gru 2014 19:11
    IXOF
    Poziom 18  

    Michał458 napisał:
    leoha napisał:
    Niepotrzebnie skomplikowaliście tak proste zadanie:


    Nie krytykuj innych bo sam skomplikowałeś :)

    Kod: cpp
    Zaloguj się, aby zobaczyć kod



    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Tak wolno robić ? piszesz w dev ?
    Trzeba to zmienić na
    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    No i jeszcze ja zmienił bym
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    na
    Kod: cpp
    Zaloguj się, aby zobaczyć kod
    .
    Wg mnie jest to czytelniejsze.
    Pozdrawiam!

    1
  • #12 15 Gru 2014 19:51
    elo812
    Poziom 5  

    Wielkie dzięki za podpowiedzi i cały program

    0