C++ függvény segítség?
Van egy függvényem ami paraméterként kap egy számot 1-től 10000-ig és ki kell írnom hogy a 6 66 666 6666 ... sorozatból melyik a legkisebb szám aminek osztója.
Nem magát a számot kell kiírni hanem hogy hány db 6-os található benne. Ha nincs ilyen szám a sorozatban akkor nullát.
Pl kapok 3-at és kiírok 1-et mert a 6 osztója a 3.
Kapok 7-et vagy 13-at és kiírok 6-ot mert a 666666 osztója a 7 és a 13.
Kapok 4-et és kiírok 0-t.
Azt csinálom hogy vizsgálom egyesével a sorozat elemeit és 20-ig kb jól is működik de 20 fölött már szinte mindig rossz eredményt kapok.
Én a feladatot se értem így hírtelen, hogy mit szeretnél.
Tehát átadsz egy random számot. Például 666.
A függvényen belül megvan adva a sorozat mondjuk egy tömbben, hogy 6,66,666,6666.
És akkor az átadott 666 osztója-e a: 6-nak? Nem. A 66 osztója-e 66nak? Nem. A 666 osztója e 666 nak? Igen.
Használd a modulo kifejezést (%) Ha nincs maradék osztója, ha van akkor nem.
1-es 7-nél pl megnézem hogy 6 % 7 == 0-e.
Utána megnézem a 66 % 7-et. Aztán a 666 % 7-et, 6666 % 7-et és így tovább.
Így csinálom: [link]
2-es csak a szám van megadva a sorozat nincs.
666-nál pl 3 az eredmény.
Jónak tűnik, amit írtál, viszont arra nem figyelsz az integer maximum értékére. Azt láttam, hogy ha a számjegyek száma nagyobb, mint maga a szám, akkor kilépsz, viszont ez nem elég, mert az int nem fog tudni 10000 számjegyet. Viszont ha ugyanott azt ellenőrzöd, hogy nem ment-e túl az integer max értékén a "sorozat" változó, nem lesz baj. Használhatnál long int-et, úgy jobb eredményt kapsz.
alapján "std::numeric_limits<int>::max()" mondja meg az integer max értékét. (Ne égess bele konstansot, mert implementációfüggő.)
Ne felejtsd el az include-ot: #include <limits>
5-ös ez is rossz eredményt ad mint az enyém.
23-nál pl 13-at pedig 22 a megoldás.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!