Python-ban hogy írjam ezt meg? HELP ME
"Írjon egy programot, ami kiszámolja 13as
szorzótábla első 50 tagját, de csak azokat írja ki,
melyek 7nek
többszörösei."
Na ezt hogy? Elvileg ez csak egy pár soros kód.
Definiáld kérlek a 13-as szorzótáblát, és adok egy egysorost.
Amúgy generátorkifejezéseket kell használni és listaszeletelést.
Ha jó értem a problémádat, akkor a következőt javaslom.
Csináld meg a feladatot papíron, annyiszor, amíg a végrehajtást "gépiesnek" nem érzed. Ha már gépies, írd le a gépies szabályt. Ha megvan a szabály, azt fordítsd át programba.
Tehát a feladat:
Előállítani egy számsort. A számsorban 13 első 50 többszöröse szerepel, de hiányoznak azok, amik nem oszthatóak 7-el. Tehát a számsorban kevesebb mint 50 szám lesz.
Elkezdjük írni a számokat:
1*13=13 (ezt nem írjuk ki mert nem 7 többszörös)
2*13=26 (ezt se írjuk ki)
3*13=39 (nem írjuk ki)
4*13=52 (ezt se)
......
7*13=91 (ezt végre kiírjuk, mert osztahtó 7-el)
....
50*13 (nem írjuk ki)
Hirtelen észrevesszük, hogy 13*valami csak akkor lesz osztható 7-el, ha az a valami 7 többszöröse. Tehát igazából ezt tesszük:
1*7*13
2*7*13
3*7*13
... egészen addig, amíg a szorzat el nem éri az 50*13 at
Ezt kell átfordítani pythonba.
i=1
while i*7*13<=50*13:
__print(i*7*13)
__i=i+1
(a __ jeleket spacéra kell alakítani)
És kész.
Neeeem, Pythonban nem írunk ciklust.
[x for x in range(0, 50*13, 13) if x%7 == 0]
'Pythonban nem írunk ciklust. '
Azért ezzel vitatkoznék, de nem itt...
Mindenesetre úgy láttam, hogy a kérdezőnek a feladatelemzéssel és az algoritmus kigondolásával voltak problémái.
Ezt helyre tenni úgy gondolom fontosabb, mint hogy funkcionális vagy procedurális megközelítést alkalmazunk a programozás során.
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!