問題 #2 - 回答 #131

Base32

RFC 4648 で定義された Base32 エンコーディングを実装してください。 標準入力から与えられる各行に対し、Base32 エンコードをおこなった文字列を標準出力へ改行区切りで出力してください。 なお、アルファベットの出力には大文字を用いてください。

回答 #131

basi が 2024-03-09 04:12:38 に投稿

コード

348 byte

while ($l = fgets(STDIN)) {
    $b = $p = '';
    foreach (str_split(rtrim($l)) as $c) {
        $b .= sprintf('%08b', ord($c));
    }
    foreach (str_split($b, 5) as $z) {
        $p .= (join(range('A', 'Z')) . '234567')[bindec(str_pad($z, 5, '0'))];
    }
    $m = strlen($b) % 40;
    echo $p . str_repeat('=', ($m ? 8 - ($m / 5) : 0)) . '
';
}

実行結果

ステータス: 失敗

テストケース 1

ステータス: 不正解

標準出力


Deprecated: Implicit conversion from float 1.5999999999999996 to int loses precision in php.wasm code on line 15
NBXWOZI=

Deprecated: Implicit conversion from float 1.5999999999999996 to int loses precision in php.wasm code on line 15
OBUXS3Y=

Deprecated: Implicit conversion from float 1.5999999999999996 to int loses precision in php.wasm code on line 15
MZ2WOYI=

標準エラー出力


テストケース 2

ステータス: OK

標準出力

4OAYNY4BRPRYFCXDQGX6HAMS
4OA2VY4BRTRYFCPDQGDOHAMX
4OBI7Y4BTHRYFCPDQKBOHANB

標準エラー出力


テストケース 3

ステータス: 不正解

標準出力


Deprecated: Implicit conversion from float 4.8 to int loses precision in php.wasm code on line 15
GEZDGNBVGY3Q====

Deprecated: Implicit conversion from float 4.8 to int loses precision in php.wasm code on line 15
GEZA====
GEZDGNBVGY3TQOJQ

Deprecated: Implicit conversion from float 3.2 to int loses precision in php.wasm code on line 15
GEZDGNBVGY3TQ===

Deprecated: Implicit conversion from float 3.2 to int loses precision in php.wasm code on line 15
GEZDG===
GEZDGNBV

Deprecated: Implicit conversion from float 1.5999999999999996 to int loses precision in php.wasm code on line 15
GEZDGNBVGY3TQOI=

Deprecated: Implicit conversion from float 1.5999999999999996 to int loses precision in php.wasm code on line 15
GEZDGNA=

Deprecated: Implicit conversion from float 6.4 to int loses precision in php.wasm code on line 15
GE======

Deprecated: Implicit conversion from float 6.4 to int loses precision in php.wasm code on line 15
GEZDGNBVGY======

標準エラー出力


テストケース 4

ステータス: OK

標準出力

MEQGEIDD
EAQOHAMC4OAYIIHDQGDCBY4BRAQOHAMK

標準エラー出力