問題 #2 - 回答 #121
Base32
RFC 4648 で定義された Base32 エンコーディングを実装してください。 標準入力から与えられる各行に対し、Base32 エンコードをおこなった文字列を標準出力へ改行区切りで出力してください。 なお、アルファベットの出力には大文字を用いてください。
回答 #121
basi が 2024-03-09 02:39:49 に投稿
コード
299 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($z)];
$p.=str_repeat('=',match(strlen($b)%40){8=>6,16=>4,24=>3,32=>1,default=>0});echo$p,'
';
}
実行結果
ステータス: 失敗
テストケース 1
ステータス: 不正解
標準出力
NBXWOZB=
OBUXS3D=
MZ2WOYB=
標準エラー出力
テストケース 2
ステータス: OK
標準出力
4OAYNY4BRPRYFCXDQGX6HAMS
4OA2VY4BRTRYFCPDQGDOHAMX
4OBI7Y4BTHRYFCPDQKBOHANB
標準エラー出力
テストケース 3
ステータス: 不正解
標準出力
GEZDGNBVGY3B====
GEZA====
GEZDGNBVGY3TQOJQ
GEZDGNBVGY3TI===
GEZDD===
GEZDGNBV
GEZDGNBVGY3TQOB=
GEZDGNA=
GB======
GEZDGNBVGG======
標準エラー出力
テストケース 4
ステータス: OK
標準出力
MEQGEIDD
EAQOHAMC4OAYIIHDQGDCBY4BRAQOHAMK
標準エラー出力