a467. 11398 - The Base-1 Number System
Tags :
Accepted rate : 408人/432人 ( 94% ) [非即時]
評分方式:
Tolerant

最近更新 : 2012-05-02 15:33

Content

如我們所知,在以 n 為底的數字系統 (n 進位) 中有 n 個不同的數字。以此類推,以 1 為底的數字系統 (1 進位) 便只有一個數字,0。解讀 1 進位數字的規則如下。每個數字有數個以 0 構成的區塊,區塊間以空白隔開。每個區塊有 1, 2 或更多個 0。每個數字有一個 flag 變數。

  • 只有一個 0 的區塊會把 flag 設為 1。
  • 有兩個 0 的區塊會把 flag 設為 0。
  • 若區塊中有 n (n > 2) 個 0,則在數字的後面加上 n-2 位數的 flag。

注意,每個數字的第一個區塊至多有 2 個 0。例如,1 進位的 0 0000 00 000 0 0000 便等同於二進位的 11011。

  • 第一個區塊把 flag 設為 1。
  • 第二個區塊有 4 個 0,因此附加 4-2 = 2 個 flag(=1),(11)。
  • 第三個區塊有 2 個 0,把 flag 設為 0。
  • 第四個區塊有 3 個 0,附加 3-2 = 1 個 flag(=0),(110)。
  • 第五個區塊只有一個 0,把 flag 設為 1。
  • 第六個區塊有 4 個 0,附加 4-2 = 2 個 flag(=1),(11011)。

求得的二進位數字不會超過 30 位數。一旦完成這些驟,把二進位值轉成十進位並輸出便大功告成了!

Input
輸入中最多有 100 筆測資,(譯註:其實有八千多筆,等比較多人上傳後,看哪幾筆測資比較多人WA就留哪幾筆)。每筆測資有一個如上所述的 1 進位數。一個數字可以橫跨好幾行,但是一個區塊不會被拆成兩行。每筆測資的結束以一個 '#' 字元表示,它與前面的數字以空白隔開。最後一筆測資之後會有一 '~' 字元,表示輸入的結束。
Output
對於每筆測資,將與已知 1 進位數字相等的十進位數字輸出於一行。
Sample Input #1
0 0000 00 000 0 0000 #
0 000 #
~
Sample Output #1
27
1
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 1.0s , <1M
Hint :
Tags:
出處:
UVa11398 [管理者: snail (蝸牛) ]

Status Forum 排行

ID User Problem Subject Hit Post Date
40991 joccc014@gma ... (czone) a467
Python 想法&思路
67 2024-06-22 18:50