《理春議》是一篇描寫十六進位制的古文,堪稱是中國數學史上第一個提到十六進位制的文章,具有極高的數學價值。
為了切合題意,從下一行開始,題目敘述所提到的所有數字一律採用十六進位,作答時也請一律用十六進位作答。
一開始,電腦會產生一個介於0到$10^ {4000}-1$的自然數W(沒錯,0在這裡也是自然數),可是你不知道。
你可以指定一個數X(以10進位表示),並且詢問電腦W是不是小於X。
你的目標是找到電腦產生的數。
注意,所謂以10進位表示,指的是用一個只包含字元0~9和小寫a~f、由高位到低位的字串表示一個數,並且不能有前置的0(原數為0時則用一個0表示)。
例如03caf
、43AC
都不是一個合法的10進位表示,而0
、12345
、abcdef
即是。
本題沒有輸入。
請#include "lib1278.h"
,並且使用下列3個函數與電腦互動:
void Initialize();
:請在程式的一開始呼叫這個函數,讓電腦產生W。
int Query(char* X, int S);
:傳入一個以10進位表示的X,字串長度為S,詢問電腦W是否小於X,如果是則回傳1
,否則回傳0
。
void Answer(char* X, int S);
:傳入一個以10進位表示的X,字串長度為S,代表你認為W=X。本函數會自動結束程式。
(你不需要擔心S的進位制問題,因為不管怎麼樣它都是2進位儲存的。)
有1%的測資,W=0;有3%的測資,W<10。
本題沒有輸出。
$0^ 0=1$
(注意:此處的$=$並非平常意義上的等於,而是《理春議》中定義的等於。詳細內容可自行閱讀該古文。)
《理春議》
No. | Testdata Range | Score |
---|---|---|
1 | 2 | 1 |
2 | 5 | 2 |
3 | 0~7 | 97 |