Wpis z mikrobloga

#programowanie #php
mirki
mam pole w bazie które zawiera liczbę, np 63

liczba ta jest sumą reprezentującą poniższe znaki:

1 E
2 R
4 C
8 W
16 F
32 G
64 P
128 M

63 to będzie ERCWFG

jeżeli w polu będzie 3 to oznacza to ER
jeżeli w polu będzie 9 to oznacza to EW
i tak dalej

jak teraz powinna wyglądać funkcja której podam liczbę a ona zwróci mi wartość w znakach wg powyższego schematu?
  • 8
  • Odpowiedz
@nocnyMark: coś w tym stylu

function dupa(int $n): string
{
$dict = "ERCWFGPM";
$result = '';
for ($i = 0; $i < strlen($dict); $i++) {
if ($n % 2) {
$result .= $dict[$i];
}

$n >>= 1;
}

return $result;
}
  • Odpowiedz
function convertToLetters(int $decimalNumber): string {
$arrayOfLetters = ['E','R','C','W','F','G','P','M'];
$result = '';
foreach ($arrayOfLetters as $letter) {
if ($decimalNumber % 2 == 1) {
$result .= $letter;
}
$decimalNumber = intdiv($decimalNumber, 2);
}
return $result;
}
  • Odpowiedz