a118: 猜數字 version 2
標籤 :
通過比率 : 8人/15人 ( 53% ) [非即時]
評分方式:
Special

最近更新 : 2020-01-20 19:51

內容

本題為互動題。

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

以下為範例程式碼(此程式不一定可以拿到AC):

#include<iostream>
using namespace std;
int main()
{
	int t;
	cin>>t;
	for(int _t=1;_t<=t;_t++)
	{
		int res;
		bool flag=false;
		for(int i=0;i<32;i++)
		{
			cout<<res<<endl;
			cin>>res;
			if(res==0)
			{
				// guess correct
				flag=true;
				break;
			}
			else if(res==1)
			{
				// answer should be bigger
			}
			else if(res==-1)
			{
				// answer should be smaller
			}
		}
		if(!flag)
			break;
	}
	return 0;
}
輸入說明

一開始先讀入一個正整數$T$代表遊戲次數。

之後便可開始第一局猜數字遊戲。

每次猜數字,請輸出一個整數並flush輸出,接著再讀入一個整數代表結果,若為0則代表猜對,若為1則代表答案比你猜的數字大,若為-1則代表答案比你猜的數字小。

當你猜對後(接收到0),便會接著開始下一局遊戲,若已為最後一局,則你必須結束你的程式(return 0)。

若你猜32次後仍未猜到答案,則你必須結束你的程式,否則可能會得到TLE。

若未按上述規定輸出輸入將會產生不可預期的結果。

輸出說明
範例輸入

										
範例輸出

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

每次輸出後請務必要flush,否則可能會得到TLE。

c++ IO的flush方法(如果你是用endl換行則不需要):cout<<flush;

c IO的flush方法:fflush(stdout);

python的flush方法:sys.stdout.flush() 或 print('',end='',flush=True)

請勿使用java

請先暫時不要使用python

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


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