問題 #2 - 回答 #153

Base32

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

回答 #153

hanhan1978 が 2024-03-09 15:15:43 に投稿

コード

319 byte

$T='ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
while($l=rtrim(fgets(STDIN))){
    $b=$r='';
    foreach(str_split($l) as $c) $b.=str_pad(decbin(ord($c)),8,0,STR_PAD_LEFT);
    foreach(str_split($b,5) as $s) $r.=$T[bindec(str_pad($s,5,"0"))];
    $r.=str_repeat("=", strlen($b)%40?8-(strlen($b)%40)/5:0);
    echo $r, PHP_EOL;
}

実行結果

ステータス: 失敗

テストケース 1

ステータス: 不正解

標準出力


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

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

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

標準エラー出力


テストケース 2

ステータス: OK

標準出力

4OAYNY4BRPRYFCXDQGX6HAMS
4OA2VY4BRTRYFCPDQGDOHAMX
4OBI7Y4BTHRYFCPDQKBOHANB

標準エラー出力


テストケース 3

ステータス: 不正解

標準出力


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

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

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

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

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

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

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

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

標準エラー出力


テストケース 4

ステータス: OK

標準出力

MEQGEIDD
EAQOHAMC4OAYIIHDQGDCBY4BRAQOHAMK

標準エラー出力