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/159/index.html | 164 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 archive/q/base32/a/159/index.html (limited to 'archive/q/base32/a/159/index.html') diff --git a/archive/q/base32/a/159/index.html b/archive/q/base32/a/159/index.html new file mode 100644 index 0000000..bc3dca6 --- /dev/null +++ b/archive/q/base32/a/159/index.html @@ -0,0 +1,164 @@ + + + + + 問題 #2 - 回答 #159 | Albatross.PHP + + + + + +
+ +
+
+

問題 #2 - 回答 #159

+ + +

Base32

+

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

+

回答 #159

+

+ zonepotage が 2024-03-09 16:57:29 に投稿 +

+

コード

+

+ 808 byte +

+
while ($plaintext = fgets(STDIN)) {
+        $text = '';
+        $bit = 0;
+        $value = 0;
+        $i = 0;
+
+        while(($bit >= 5) || ($i < strlen($plaintext))){
+            if($i < strlen($plaintext)){
+                $value = ($value * 256) + ord($plaintext[$i]);
+                $bit+= 8;
+                $i++;
+            }
+            $bit -= 5;
+            $code =  (int)($value / pow(2,$bit));
+            $text .= chr($code + 65 - ($code > 25 ? 41 : 0));
+            $value %= (pow(2, $bit));
+            if(($bit < 5) && ($bit > 0) && ($i >= strlen($plaintext))){
+                $value *=  pow(2,5 - $bit);
+                $bit = 5;
+            }
+        }
+        if(strlen($text) % 8){
+            $text .= str_repeat("=",8 - strlen($text) % 8);
+        }
+        echo $text, PHP_EOL;
+    }
+

実行結果

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

テストケース 1

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

標準出力

+
NBXWOZIK
+OBUXS3YK
+MZ2WOYIK
+
+
+

標準エラー出力

+

+
+

テストケース 2

+
+ ステータス: 実行時エラー +
+

標準出力

+

+Deprecated: Implicit conversion from float 2346943114 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float -17657853213 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float -122363911295 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float 8589934592 to int loses precision in php.wasm code on line 21
+
+Fatal error: Uncaught DivisionByZeroError: Modulo by zero in php.wasm code:21
+Stack trace:
+#0 {main}
+  thrown in php.wasm code on line 21
+
+
+

標準エラー出力

+

+
+

テストケース 3

+
+ ステータス: 実行時エラー +
+

標準出力

+
GEZDGNBVGY3QU===
+GEZAU===
+
+Deprecated: Implicit conversion from float 26696235312 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float 237166473226 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float 8589934592 to int loses precision in php.wasm code on line 21
+
+Fatal error: Uncaught DivisionByZeroError: Modulo by zero in php.wasm code:21
+Stack trace:
+#0 {main}
+  thrown in php.wasm code on line 21
+
+
+

標準エラー出力

+

+
+

テストケース 4

+
+ ステータス: 実行時エラー +
+

標準出力

+
MEQGEIDDBI======
+
+Deprecated: Implicit conversion from float 3816916000 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float -19301916445 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float -268366191743 to int loses precision in php.wasm code on line 21
+
+Deprecated: Implicit conversion from float 8589934592 to int loses precision in php.wasm code on line 21
+
+Fatal error: Uncaught DivisionByZeroError: Modulo by zero in php.wasm code:21
+Stack trace:
+#0 {main}
+  thrown in php.wasm code on line 21
+
+
+

標準エラー出力

+

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