Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

C++ nyelvben

346
Szamítsd ki két szám hányadosát anélkül hogy osztást használnák
Jelenleg 1 felhasználó nézi ezt a kérdést.
c++, infó, informatika
0
Általános iskola / Informatika

Válaszok

1
Keresd meg az osztó legnagyobb legnagyobb olyan 2 hatványszorosát, ami még kisebb mint az osztandó, majd kezdd el kivonni a számbóol ezeket a 2 hatványsoros osztandókat (nyilván csak akkor, ha kisebb mint a maradék).

Pl:

100/17 => 4*17=68 a legnagyobb
100-68 = 32
2*17=34 => túl nagy
17 => ok => 32-17 = 15

Az osztás egész eredménye: 4+1 = 5

Ha kellenek a tizedesjegyek is, akkro folytathatod tovabb:
17/2 = 8,5 (bár ez látszólag osztás, de igazából bit shifteléssel is megoldható és akkor nem kell osztani.)
15 > 8,5, ok => maradek: 6,5
17/4 = 4,5
6,5 > 4,5 ok => maradek 2

innen nem folytatom, az osztás eddigi eredménye:
5+0,5 + 0,25 = 5,75... nyilván minél tovább csinálod, annál pontosabb lesz.

Ha nem akarsz ilyen "bonyolult" algoritmust, akkor csak simán kezdd el kivonni a számból az osztót, bár nagy osztandó szám esetén esetén ez sokáig tarthat (bár a mai modern gépeken azért annyira nem, már ha pl sima 32 bites számokról van szó)
0