Í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?
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.
Í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. :)
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.
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.
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!