Kezdőoldal » Számítástechnika » Programozás » Hogyan oldanátok meg ezt a...

Hogyan oldanátok meg ezt a problémát?

Figyelt kérdés

Nem nehéz, de mégis kifog rajtam. Van működő kódom.


A feladat az, hogy két számot bekérek és ki kell adnom minden közéjük eső számot, ami 10el osztható.


Ez nagyon könnyű. Egy while ciklusba egy ilyen felétellel "lowerNumber + 1 < higherNumber" végig megyek a lehetséges számokon és ha 10el osztható kiírom.


... de a feladatban az is benne van, hogy nem tudhatom melyik számot adják meg. Magyarul előtte ellezőriznem kell melyik melyik, de a saját logikámmal csak arra jutottam, hogy egy if else blocban ellenőrzős és ugyan azt a while ciklust leírom így kétszer a kétféle esetre.


Ami igaz kezdőként is, de nagyon rossz ötletnek hangzik, mert ugyan azt a logikát 2x fogalmazom meg.


Tudom ha egy külön methodot írnék, aminek 2 argumentuma van, akkor már szelektálva tudnám beadni a számokat és nem lenne ilyen problémám :D, de nem használhatok függvényeket, csak a Mainbe hányhatok be minden kódot, mert még nem tartunk ott a tananyagban.



2018. szept. 17. 22:18
 1/6 anonim ***** válasza:
Végigmész a cikluson, és ha szám % 10 == 0 akkor kiírod, ennyi.
2018. szept. 17. 22:22
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
100%

A fő problémád ugyebár:

"de a feladatban az is benne van, hogy nem tudhatom melyik számot adják meg"

Bekéred a két számot - legyen mondjuk sorrendben "first" és "second", majd.

if (first > second) {

lowerNumber = first;

higherNumber = second;

} else {

lowerNumber = second;

higherNumber = first;

}

innentől meg leírtad: végigmész a lowerNumber -> higherNumber tartományon és eldöntöd, hogy osztható-e 10-el - ha igen, kiírod.

2018. szept. 17. 22:30
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

1# Nem érted a problémám.


2 fajta ciklus lehetséges így lényegében ugyan azt lekéne írtam 2x meglehet oldani szebben method használata nélkül?


[link]


Most így oldottam meg. Ez szerintem normálisan nézki, de nem használhatom a methodokat.

2018. szept. 17. 22:30
 4/6 A kérdező kommentje:

2# Köszi. :D Wow ... pedig ugyan ezt csináltam ... Bocs, nem láttam a kommentedet, amikor az elsőnek írtam.


Ment a like.

2018. szept. 17. 22:31
 5/6 anonim ***** válasza:

Talán objektív de nekem ez a megoldás valamivel elegánsabbnak tűnik:

[link]


A cserénél nincs akkora tömeg(ha megismerkedtél a pointerekkel, akkor egy swap(int *a, int *b) függvény még átláthatóbbá teheti).


Ami viszont lényegesebb: nem végez el 9 fölösleges összehasonlítást mire a 10.-nél megtalálja azt a számot amit ki kell írnia.

Ha kiszámolod, hogy melyik az első legközelebbi 10 el osztható szám, akkor csak 10 el kell ugrálnod felfelé.


Remélem segítettem ;)



A általad linkel képen van még egy furcsaság. A while ciklusodban miért (lower +1 < higher) feltétel van?

2018. szept. 18. 13:59
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
b@zzki.. szubjektívre gondoltam...
2018. szept. 18. 15:35
Hasznos számodra ez a válasz?

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!