問題 #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
標準エラー出力