A programozók miért használnak sqrt (i) + 1 függvényt arra, hogy megkapják a szám felét?
Prímszám kiíró programokba láttam ilyet de mi értelme van annak,hogy be töltik a math.h és mi értelme van egy függvényhívásnak ha egyszerűen így is megoldható: i/2 ??
Prímszámok keresésénél elég a feléig elszámolni de mi értelme van ennek: (int)sqrt + 1 csak azért,hogy megkapják a szám felét?Szerintetek?
A másik amit nem értek az,az,hogy olyan esetekben amikor valami implicit konvertálódik(pl: float intre) a programozók miért teszik ez explicitként? Példa: int x = (int)sqrt(u) + 1 vagy nagyon gyakran ilyen formában is szoktam látni: int x = static_cast<int>(sqrt(u) +1);
Miért?
Az sqrt() nem a felét hanem a négyzetgyökét adja vissza a számnak. Bontsuk fel a 10,000-t prímtényezőkre. Ha csak i/2-ig számolsz el az 5,000, de ha sqrt(i)+1-ig az 101.
Az (int) az ún. 'C-style' castolás, a static_cast meg C++ style
Gondolkozz! A prímszámnál mi az érteleme i/2-ig elmenni?
Miért nem elég sgrti)-ig. Például 101 prímszám-e? Elég a ..11-el oszhatóságot vizsgálni.
Miért gondolod, hogy egyszerűbb megjegyezni, hogy mikor melyik programrendszerben mi hogyan konvertálódik. Talán egyszerűbb egysegésen kezelni mindent. Inkább felesleges irogatás, mint hibás használat. Meg van amikor így gyorsabban fut.
Köszi.
Most már értem és tuti,hogy Buddha megvilágosodása kutya fa*za az enyémhez hála nektek adtam zöld kezet.
Még egy kérdésem lenne:
Az sqrt visszaadott értékéhez még miért kell hozzárendelni 1 et?
Nem hozzárendelni, hozzáadni. Hozzárendelni csak balértékhez lehet (pl. változóhoz).
Önmagában nem kell, de ha ez egy ciklusfejben van, akkor kellhet, hogy az utolsót is figyelembe vegye, pl. i=1; i++; i<sqrt(n)+1
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!