Kurzusok
/
PHP
PHP
/
Feladatok
/
Eliud tojásai
Eliud tojásai

Eliud tojásai

Közepes

Bevezetés

A barátnőd, Eliud egy farmot örökölt a nagymamájától, Tigisttől. A nagymama feltaláló volt, és hajlamos volt rá, hogy a dolgokat túl bonyolultan építse meg. A tyúkólban van egy digitális kijelző, amely egy kódolt számot mutat: ez az összes felszedhető tojás pozícióját reprezentálja.

Eliud arra kér, hogy írj egy programot, amely megmutatja, valójában hány tojás van az ólban.

A pozícióinformáció kódolása a következőképpen számolódik ki:

  1. Nézd át a lehetséges tojásrakó helyeket, és egy meglévő tojásnál jelölj 1-et, egy üres helynél pedig 0-t.
  2. Alakítsd át a számot binárisból tizedesre.
  3. Jelenítsd meg az eredményt a kijelzőn.

1. példa

Hét különálló fészek egy sorban, amelyek közül az első, a harmadik, a negyedik és a hetedik fészekben egy-egy tojás van.

 _ _ _ _ _ _ _
|E| |E|E| | |E|

A kapott bináris szám

1011001

 _ _ _ _ _ _ _
|1|0|1|1|0|0|1|

A kijelzőn megjelenő tizedes szám

89

A valódi tojások száma az ólban

4

2. példa

Hét különálló fészek egy sorban, ahol csak a negyedik fészekben van tojás.

 _ _ _ _ _ _ _
| | | |E| | | |

A kapott bináris szám

0001000

 _ _ _ _ _ _ _
|0|0|0|1|0|0|0|

A kijelzőn megjelenő tizedes szám

8

A valódi tojások száma az ólban

1

Utasítások

A feladatod, hogy megszámold, hány 1-es bit van egy szám bináris ábrázolásában.

Megkötések

Ne nyúlj a standard könyvtárad által biztosított bitszámláló funkcióhoz! Oldd meg ezt magad, más alapvető eszközökkel.

Bitenkénti operátorok

A PHP-ben vannak bitenkénti operátorok.

Például a „bitenkénti és” operátor (&) használható annak ellenőrzésére, hogy egy szám egy bitje be van állítva:

$number = 89; // 0b01011001
$mask16 = 16; // 0b00010000
$mask32 = 32; // 0b00100000

$isMask16 = ($number & $mask16) > 0; // 0b00010000 > 0 => TRUE
$isMask32 = ($number & $mask32) > 0; // 0b00000000 > 0 => FALSE
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
PHP Exercism

Készen állsz elkezdeni a(z) Eliud tojásai feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) PHP nyelvet 11 fogalom122 feladat segítségével, valódi emberi mentorálással, mindez ingyen.