Hogyan lehet egy tetszőlegesen hosszú szám négyzetét kiszámolni?
Az összeadással és kivonással nem akadt nehézségem, a számokat stringként tárolva, majd számjegyenként, az általános iskolás írásbeli összeadás/kivonás algoritmusát felhasználva nem volt nehéz megvalósítani.
Viszont a négyzetre emelés (és a szorzás) az írásbeli szorzást leutánozva elég bonyolultnak tűnik. Nincs valami algoritmus egy szám négyzetének meghatározására?
@SimkoL : Irtam én egyszerű ember vagyok, nekem ennyire futotta. Ha Te tudsz egyszerűbb vagy jobb megoldást, akkor oszd meg, én is és más is had tanuljon belőle.
Üdv.
Picit átírtam cooper kódját, ha már 'beszóltam':
A SzovegNullazas funkció helyett a Delphi / Pascal StringOfChar függvénye került, tizedesjegy elválasztó StringReplace függvénnyel került kicserélésre, a tizedes jegyek meghatározása függvényt kapott. Talán a legfontosabb rész benne a szám ellenőrzése függvény. A SetLength és az Insert is szerepet kapott a Copy-k helyett.
De, hogy hasonlítson is nyúltam a SyntaxHighlighter-t - bocsi cooper :)
@SimkoL-nak
A SyntaxHighlighter én is googlétől nyúltam, úgy hogy ez nem gond.
Viszont mos én "szólok be":
A "tizedesPos" fügvényed nem sikerült valami optimálisra, akkor inkább már az én pozicionálós és összehasonlítós kódomat kellet volna függvénybe rakni. Mivel Te ciklusba raktad az IF-eket (egy if helyett, a beadott szám formátumának függvényében több if kerül végrehajtásra).
A többivel nagyjából egyetértek, de már egyszer irtam, az a bajom, hogy nem néztem utána a beépített függvényeknek, a string "Insert" és "Delete" függvényeit feleslegesnek tartom (és ezért ezeken nem is szoktam használni), mivel mindkettő kiváltható a string "copy" függvényével.
Azt pediglen már a múltkor letisztáztuk, hogy a Stringreplace egy általánosan megírt függvény - ami kezeli a különféle kódolásokat is - de ebben az esetben szerintem optimálisabb egy-két copy mint a Stringreplace függvény.
Bár természetesen én elismerem, hogy mindenki úgy kódol ahogy tud, én így Te úgy.
Csak az én véleményem az, hogy nem mindig kell "feláldozni" a kódot a "szépség" oltárán, és ez a stringreplacés dolog nekem erősen a szépség felé hajlik.
Üdv.
Rekurzízv algoritmus egy példán bemutatva
5442**2=5000**2+2*5000*442+442**2
442**2=400**2+2*400*42+42**2
42**2=40**2+2*40*2+2**2
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!