本題為互動題。
經典猜數字遊戲,數字範圍為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。
若未按上述規定輸出輸入將會產生不可預期的結果。
每次輸出後請務必要flush,否則可能會得到TLE。
c++ IO的flush方法(如果你是用endl換行則不需要):cout<<flush;
c IO的flush方法:fflush(stdout);
python的flush方法:sys.stdout.flush() 或 print('',end='',flush=True)
請勿使用java
請先暫時不要使用python
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |