Kezdőoldal » Számítástechnika » Programozás » Írjon programot, ami kiszámolj...

Írjon programot, ami kiszámolja, hány olyan pozitív egész szám van, aminek a százas helyén 8, egyes helyén nem a 7 áll?

Figyelt kérdés
Visual Basic
2014. febr. 16. 09:06
 1/7 anonim ***** válasza:
Valami korlát csak kéne, mert végtelenig számolhatná....
2014. febr. 16. 09:41
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

Mármint, én írjak? Mi nem megy?


Egyébként ha csak ennyi a megkötés, végtelen sok olyan szám van amire ez igaz.

2014. febr. 16. 09:41
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
Bocsi, kihagytam, hogy háromjegyű.
2014. febr. 16. 10:36
 4/7 A kérdező kommentje:
Most kezdtem el tanulni, tudom, hogy ciklussal kéne, de még nagyon az alapok mennek csak, ezt nem tudnám megcsinálni.
2014. febr. 16. 10:37
 5/7 anonim ***** válasza:

Így van, ha nincs korlát, akkor a programnak ennyit kell kiírnia:

"Megszámlálhatóan végtelen sok ilyen szám van."


Ha van korlát, például célszerű lenne az, hogy 3 jegyű számok körét vizsgáljuk, akkor pedig egyáltalán nem kell ciklus, csak gondolkodni kell:


"százas helyén 8" = a szám 800 és 899 közé esik (beleértve a két határt is), ez pontosan 100 db szám


"egyes helyén nem a 7" = nincs benne a 807, 817, ... 897, ez pontosan 10 db szám


Az eredmény pedig egy kivonással megkapható, de azt csak nem kell leírnom. :)

2014. febr. 16. 10:49
Hasznos számodra ez a válasz?
 6/7 coopper ***** válasza:

Szia.


A legprimitivebb megoldás, ciklus 100-től 999-ig, aztán szétbontod a ciklusváltozód egyesekre, tizesekre, és százasokra (pl. maradék nélküli osztással - ciklusváltozó/100 maradék nélkül megkapod a százasokat, (ciklusváltozó-százasok*100)/10 maradék nélkül megkapod a 10-eseket, ciklusváltozó-százasok*100-tizesek*10 megkapod az egyeseket), és megvizsgálod, hogy teljesülnek-e a megadott feltételek (szazasok=8 illetve egyesek nem egyenlőek 7-tel), ha igen akkor növelsz eggyel egy változót, ha vége a ciklusnak kiiratod ezt a változót.


Kettes megoldás, mivel meg van adva, hogy a százasok helyen csak 8 lehet ezért a ciklust eleve 800-tól inditod és csak 899-ig futtatod, a többi ugyanaz mint fent.


Ellenőrzős képpen, simán ki lehet számolni fejben :


800-899-ig : 100 darab szám.

Ebből ki kell vonni azokat az eseteket amikor az egyesek helyén 7 van, tehát ez 10 eset, ezért a megoldás szerintem 90 darab.


Sok sikert.

üdv.

2014. febr. 16. 10:54
Hasznos számodra ez a válasz?
 7/7 SimkoL ***** válasza:

Mivel vasárnap van:


program szam;

var i, db : integer;

begin

for i := 800 to 899 do if i mod 10 <> 7 then Inc(db);

Write(db);

end.

2014. febr. 16. 16:16
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!