a502. CPE:Brainfuck (UVa 11956)

簡單CPE

時間限制 1000 ms ・ 記憶體限制 256 MB

題目描述

模擬一個只支援 >、<、+、-、. 五種指令的 Brainfuck 處理器。指令由左至右依序執行。

記憶體由 100 個位元組組成,每個位元組的值介於 0 到 255。每筆測試開始時,所有值都是 0,指標指向最左邊的位元組。

  • >:指標向右移動一格;從最右邊再向右會回到最左邊。
  • <:指標向左移動一格;從最左邊再向左會回到最右邊。
  • +:目前位元組加 1;255 加 1 會變成 0。
  • -:目前位元組減 1;0 減 1 會變成 255。
  • .:顯示目前位元組的值,但不改變記憶體或指標。

本題要求的是整段程式執行完畢後的記憶體內容;不需要輸出 . 指令顯示的中間結果。

輸入格式

第一行為測試筆數 T,T ≤ 100。

接下來 T 行,每行是一筆測試的指令序列,只包含上述五種指令,行長度小於 100000。每筆測試都使用重新初始化的記憶體與指標。

輸出格式

每筆測試輸出一行,格式為 Case t: D,其中 t 為從 1 開始的測試編號。

D 是 100 個位元組由最左邊至最右邊的值。每個值都以恰好兩位的大寫十六進位表示(00 到 FF),不足兩位時補前導零。相鄰數值之間恰好一個空白,冒號後也有一個空白。

原題 PDF 將範例的指令及輸出折行排版;實際上每筆指令及對應輸出各占一行。

題目來源

CPE 2026/05/26 第 3 題:UVa 11956 — Brainfuck

範例測資

範例輸入 1

1
..++<><<+++>>++++++++++++++++++++++++++>>>+++<+...++<><<+++>>++++++++++++++++++++++++++>>>+++<+...++<><<+++>>++++++++++++++++++++++++++>>>+++<+.

範例輸出 1

Case 1: 1F 00 20 03 1D 03 01 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00
請先登入後再提交程式碼

討論與題解

載入討論區…

更多