Kezdőoldal » Számítástechnika » Programozás » C++ függvény segítség?

C++ függvény segítség?

Figyelt kérdés

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.



2020. aug. 2. 20:39
1 2 3
 1/29 anonim válasza:
39%
Le tudnád írni, hogy meddig jutottál? Az eddigi alapján nem lehet eldönteni, hogy hol ronthattad el.
2020. aug. 2. 20:45
Hasznos számodra ez a válasz?
 2/29 anonim ***** válasza:
21%

É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.

2020. aug. 2. 20:56
Hasznos számodra ez a válasz?
 3/29 anonim ***** válasza:
25%
While ciklus, addig menjen ameddig nincs maradék, közben egy változót növelj és azt a változót add vissza.
2020. aug. 2. 21:04
Hasznos számodra ez a válasz?
 4/29 A kérdező kommentje:

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.

2020. aug. 2. 21:12
 5/29 anonim ***** válasza:
5%

Én így csináltam:


[link]


Ha erre gondolsz.

2020. aug. 2. 21:21
Hasznos számodra ez a válasz?
 6/29 anonim ***** válasza:
16%
Mondjuk van olyan szám, amit nem tudsz elosztani így a végtelenségig fog futni.
2020. aug. 2. 21:25
Hasznos számodra ez a válasz?
 7/29 anonim válasza:
19%

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.

[link]

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>

2020. aug. 2. 21:31
Hasznos számodra ez a válasz?
 8/29 A kérdező kommentje:

5-ös ez is rossz eredményt ad mint az enyém.

23-nál pl 13-at pedig 22 a megoldás.

2020. aug. 2. 21:41
 9/29 A kérdező kommentje:
7-es úgy látom a long int is 19 számjegyet tud max ami közelében sincs a 10000-nek.
2020. aug. 2. 21:49
 10/29 A kérdező kommentje:
long int pl 45-öt ad a 23-ra 22 helyett
2020. aug. 2. 21:50
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!