Új hozzászólás Aktív témák

  • proci985

    MODERÁTOR

    válasz 7600 GS #1194 üzenetére

    codeblocks, az valami compiler?

    kb a következőt kéne csinálnod:

    először bekéred a két számot (mondjuk int jó lesz, esetleg rárakhatsz egy ifet ellenőrizni a számokat). aztán megállapítod, melyik a nagyobb.

    ha ez megvan, ciklusosan 1től a kisebb számig menj végig az összes számon. ha osztója az egyiknek (másképp: egyik mod iterátor == 0) és a másiknak is, akkor kiiratod, egyébként meg nem. ha eléred a kisebb számot, ott már több osztó nem lesz.

    ez a naív implementáció, csúnya, de működik.

    második implementáció: bekéred a két számot, megállapítod hogy szabványosak e (if (input >=10 && input < 100)), megtalálod melyik a kisebbik és nagyobbik, aztán nyomsz rájuk egy euklideszi algoritmust. ha nehezen érthető nézd a példát, vagy az angol oldalat.
    miután euklides lefut, meglesz a legnagyobb közös osztó. azt lehet prímfelbontani amiből meg előállíthatók az osztók. ez lehet hogy gyorsabb lenne (tippre alacsonyabb lesz a lépésszám, de nem vagyok teljesen biztos), viszont a kód sokkal bonyolultabb lesz (pl 40 és 80ból lesz egy GCD 40, ami 2^3 * 5, amiből osztók 2, 4, 8, 5, 10,20,40).

    ha ez egy beadandó: sürgősen kezd el tanulmányozni a könyvet/jegyzetet, ez egy eléggé egyszerű procedurális feladat (értsd, amennyi idő alatt összeraktam a bejegyzést, ment volna a kód is), vizsgán pedig nem hinném, hogy egyszerűbbet fogsz kapni. ha tényleg nincs ötleted, akkor jobb megoldás nem nagyon van. ajánlott pl a madaras stroustrup könyv (programming practice and principle in c++), az remek, de az elején a bevezetőt ugord át és kezd a hello worldos fejezetnél. aztán ülj le, és csináld a feladatokat. magyar könyvek közül én a programozzunk c++ nyelvennel találkoztam (csapongó, száraz és előbb vezeti be a dynamic castet, mint a classokat), illetve az OO c++al, de az meg inkább classokra fókuszál, itt meg inkább procedurális tudás kéne.

Új hozzászólás Aktív témák