a546:           
標籤 : Whitespace compiler
通過比率 : 4人/6人 ( 67% ) [非即時]
評分方式:
Strictly

最近更新 : 2021-01-29 00:13

內容

Whitespace是一種深奧的程式語言,而且只視空格(Space)、縮排(Tabs)、和換行(New Lines, 簡記為LF)為語法的一部份

它本身是一個指令式、基於堆疊的語言

這種語言有和brainfuck一樣的優點,能方便地寫程式注釋,寫的注釋根本不需要標識,編譯器直接跳過你寫的文字資訊。還有,藉助這種語言,可以在滿篇空白的代碼中插入一篇文章,從而在看起來完全無關的文章中隱藏一段代碼。對於一些需要保證安全性的工作來說,這種語言幫助很大,因為它可以防止別人把代碼列印出來拿走。

現在給你一段Whitespace程式碼,請你寫出編譯器並執行它

 

為了避免題目過於複雜,這段Whitespace只包含兩種操作 - push和printc

這兩種操作的程式碼分別如下

push [Space][Space](Number)
printc [Tab][LF][Space][Space]

Number代表的是一個二進位整數

在Whitespace中,數字的表示法如下

  1. 第一個位元代表正負,[Tab]為負, [Space]為正
  2. 接下來按照位元[Tab]為1, [Space]為0
  3. 最後以[LF]作為數字結束的標記

舉例來說,數字10的表示法如下

[Space][Tab][Space][Tab][Space]

輸入說明

多個測資點,每個測資點單筆測資

輸入一段Whitespace程式碼,以EOF結尾

指令數 $\leq 10^4$

輸入之二進位數字在ascii碼中一定是英數字或空白

輸出說明

執行該段Whitespace程式碼

範例輸入
seems to  			 	 
	be
     	nothing		    
	
 in    		this 				
	block
     	of	 				
	
sample     			    
	
     		input	 	 
	
  
範例輸出
:poop:
測資資訊:
記憶體限制: 256 MB
不公開 測資點#0 (20%): 1.0s , <1K
不公開 測資點#1 (20%): 1.0s , <1K
不公開 測資點#2 (20%): 1.0s , <1M
不公開 測資點#3 (20%): 1.0s , <1M
不公開 測資點#4 (20%): 1.0s , <1M
提示 :

有測資喔,反白看的到

標籤:
Whitespace compiler
出處:
[管理者:
fdhs107_KonChin... (konchin)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」