a117: 猜數字 version 1
標籤 :
通過比率 : 7人/22人 ( 32% ) [非即時]
評分方式:
Special

最近更新 : 2020-01-25 21:45

內容

本題為互動題。

經典猜數字遊戲,數字範圍為0~2147483647,每當你猜一個數字,你將能得知你猜的答案是否正確,如果不正確,你能得知正確答案比你猜的答案大還是小,現在你一共可以猜32次,請在32次內猜出答案。

本題的作答方法如下:

1. 本題主要code僅限以c++作答

2. 你的程式可以呼叫以下三個函數 : 

int init();

void start();

int guess(int x);

3. 在程式剛開始時,你必須先呼叫init(),並取得其回傳值T,代表你要玩猜數字的次數。

4. 每次遊戲一開始必須先呼叫start()代表遊戲開始。

5. 之後你便能呼叫guess(x)最多32次,參數x代表你猜的數字,若你猜對則會回傳0,若正確答案比你猜的小則會回傳-1,若正確答案比你猜的大則會回傳1。

6. 當你猜對後(也就是接收到guess回傳0),你便可以再次呼叫start()以開始下一次的遊戲,若已經是最後一輪(第T局)則必須將程式結束(return 0);

7. 若你的程式呼叫32次guess以後仍然沒有猜出答案,你的程式將會被強制結束(你不需要處理此情況),並得到WA。

8. 將你寫好的程式碼作為輸出,用任何語言印出皆可(下面範例用python印出)

9. 任何不符上述規定的行為(包含任何輸出輸入行為)將可能造成很可怕的結果(包含RE、SE、WA、TLE...)。

範例程式(python)(此程式符合上述規定,但不一定可以拿到AC):

print('''
int main(){
	int t=init();
	for(int _t=1;_t<=t;_t++)
	{
		start();
		int res;
		bool flag=false;
		for(int i=0;i<32;i++)
		{
			res=guess(i);
			if(res==0)
			{
				// guess correct
				flag=true;
				break;
			}
			else if(res==1)
			{
				// answer should be bigger
			}
			else if(res==-1)
			{
				// answer should be smaller
			}
		}
	}
	return 0;
}
''')
輸入說明

本題沒有輸入。

輸出說明

本題沒有輸出。

範例輸入

										
範例輸出

										
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 5.0s , <1K
提示 :

題目有提供judge函數的函數原型,為了避免CE(會得到WA(Runtime Rrror)),你們可以在本機把函數寫出來(內容空的沒差),確定編譯過了再把它刪掉然後上傳。

標籤:
出處:
[管理者:
giver (垃圾)
]


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