codeforces679A_Bear and Prime 100 互動題
阿新 • • 發佈:2018-12-09
第一道互動題
題意:
電腦事先想好了一個數【2,100】 你會每次問電腦一個數是否是它想的那個數的因數 電腦會告訴你yes或no
至多詢問20次
最後要輸出它想的數是質數還是合數
思路:
列舉<50的質數和4,9,25,49即可判斷 4,9, 25,49單獨看作質數是這樣方便判斷2^2,3^2,...,9^2
解釋:
在使用多個輸出函式連續進行多次輸出時,有可能發現輸出錯誤。 因為下一個資料再上一個資料還沒輸出完畢,還在輸出緩衝區中時,下一個printf就把另一個數據加入輸出緩衝區, 結果沖掉了原來的資料,出現輸出錯誤。 在 printf();後加上fflush(stdout);強制馬上輸出,避免錯誤。
fflush只能加於你的輸出後 電腦的反饋前
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 char fb[5]; 5 int init[40] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 4, 9, 25, 49}; 6 7 int main() { 8 int cnt = 0; bool flag = 1; 9 for (int i = 0; i <= 18; ++i){ 10 printf("%d\n", init[i]); 11 fflush(stdout); 12 scanf("%s", fb); 13 if (fb[0] == 'y') ++cnt; 14 if (cnt >= 2) { 15 flag = 0; break; 16 } 17 } 18 flag ? puts("prime") : puts("composite"); 19 return 0; 20 }