From fbd4f2129ce8fe106391302896dd86e05b2f331b Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 5 Dec 2025 04:08:22 +0900 Subject: add files --- archive/q/base32/a/79/index.html | 152 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 archive/q/base32/a/79/index.html (limited to 'archive/q/base32/a/79/index.html') diff --git a/archive/q/base32/a/79/index.html b/archive/q/base32/a/79/index.html new file mode 100644 index 0000000..15f77c1 --- /dev/null +++ b/archive/q/base32/a/79/index.html @@ -0,0 +1,152 @@ + + + + + 問題 #2 - 回答 #79 | Albatross.PHP + + + + + +
+ +
+
+

問題 #2 - 回答 #79

+ + +

Base32

+

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

+

回答 #79

+

+ oogFranz が 2024-03-08 13:27:17 に投稿 +

+

コード

+

+ 947 byte +

+
<?php
+
+/**
+ * RFC 4648 準拠の Base32 エンコーディング
+ *
+ * @param string $input エンコード対象の文字列
+ * @return string Base32 エンコードされた文字列
+ */
+function base32_encode_rfc4648($input)
+{
+    $base32Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
+    $output = '';
+    $buffer = 0;
+    $bitsRemaining = 0;
+
+    foreach (str_split($input) as $byte) {
+        $buffer <<= 8;
+        $buffer |= ord($byte);
+        $bitsRemaining += 8;
+
+        while ($bitsRemaining >= 5) {
+            $output .= $base32Alphabet[$buffer >> (32 - 5)];
+            $buffer <<= 5;
+            $bitsRemaining -= 5;
+        }
+    }
+
+    if ($bitsRemaining > 0) {
+        $buffer <<= (32 - $bitsRemaining);
+        $output .= $base32Alphabet[$buffer];
+    }
+
+    return $output;
+}
+
+// 標準入力から各行を読み込み、Base32 エンコード
+while ($line = fgets(STDIN)) {
+    echo base32_encode_rfc4648(trim($line)) . PHP_EOL;
+}
+

実行結果

+
+
+
+ ステータス: 失敗 +
+
+

テストケース 1

+
+ ステータス: 不正解 +
+

標準出力

+
AAAAQAA
+AAAAQAA
+AAAAQAA
+
+
+

標準エラー出力

+

+
+

テストケース 2

+
+ ステータス: 不正解 +
+

標準出力

+
AAAQQAAOAQAQQAAIAQAQQAQI
+AAAQQAAOAQAAQAAIAQAQAAQI
+AAAQAAQOAQAQQAAIAQAAAAQI
+
+
+

標準エラー出力

+

+
+

テストケース 3

+
+ ステータス: 不正解 +
+

標準出力

+
AAAQAAQDAQAA
+AAAA
+AAAQAAQDAQAAQAAD
+AAAQAAQDAQAAA
+AAAQA
+AAAQAAQD
+AAAQAAQDAQAAQAA
+AAAQAAA
+AA
+AAAQAAQDAA
+
+
+

標準エラー出力

+

+
+

テストケース 4

+
+ ステータス: 不正解 +
+

標準出力

+
AAAQAAAC
+AAAQQAAOAQAAAAQIAAAAQAQIAAAQA
+
+
+

標準エラー出力

+

+
+
+ +
+ + + -- cgit v1.2.3-70-g09d2