問題 #2 - 回答 #134

Base32

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

回答 #134

tadsan が 2024-03-09 04:21:30 に投稿

コード

275 byte

while($l=fgets(STDIN)){$l=chop($l);$t='';for($i=0;$i<strlen($l);$i++)$t.=str_pad(decbin(ord($l[$i])),8,0,0);foreach(str_split($t,5)as$b)echo[...range('A','Z'),...range('2','7')][bindec(str_pad($b,5,0))]; echo str_repeat('=',(fn($n)=>($n%8)?0:6-$n/8)(strlen($t)%40))??'',"
";}

実行結果

ステータス: 失敗

テストケース 1

ステータス: 不正解

標準出力

NBXWOZI==
OBUXS3Y==
MZ2WOYI==

標準エラー出力


テストケース 2

ステータス: 不正解

標準出力

4OAYNY4BRPRYFCXDQGX6HAMS======
4OA2VY4BRTRYFCPDQGDOHAMX======
4OBI7Y4BTHRYFCPDQKBOHANB======

標準エラー出力


テストケース 3

ステータス: 不正解

標準出力

GEZDGNBVGY3Q====
GEZA====
GEZDGNBVGY3TQOJQ======
GEZDGNBVGY3TQ===
GEZDG===
GEZDGNBV======
GEZDGNBVGY3TQOI==
GEZDGNA==
GE=====
GEZDGNBVGY=====

標準エラー出力


テストケース 4

ステータス: 不正解

標準出力

MEQGEIDD======
EAQOHAMC4OAYIIHDQGDCBY4BRAQOHAMK======

標準エラー出力